Comment utiliser du code en C dans visual Basic

Comment utiliser du code en C dans visual Basic - Programmation

Marsh Posté le 13-04-2001 à 01:57:12    

En fait le truc c'est que j'ai codé le noyau de mon prog en C standard et j'ai la méga fléme de passer par l'API windows pour faire une interface que je mettrais 5 min a faire sous VB.
 
Voila, si vous avez une idée ..... voir même une solution , je suis preneur !


---------------
La vie n'est pas un restaurant mais un buffet. Levez-vous pour vous servir.
Reply

Marsh Posté le 13-04-2001 à 01:57:12   

Reply

Marsh Posté le 13-04-2001 à 11:25:01    

Je connais pas le Visual Basic mais je peux peut etre te conseiller d'utiliser JBuilder(c un Rapid Application Developement pour Java) pour faire ton interface. Il existe un truc qui s'appelle Java Native Interface qui permet d'appeler et d'etre appele du langage C/C++,ASM...  
Sinon tu peux toujours utiliser C++Builder qui lui est un RAD pour C++. Voila j'espere que ca peut t'aider.

Reply

Marsh Posté le 13-04-2001 à 11:38:13    

c'est clair que si ton code est en c je te conseille vivement Borland C++ Builder qui est tres facile d'utilisation.

Reply

Marsh Posté le 13-04-2001 à 11:54:46    

Fait une DLL... exporte les fonctions dont tu as besoin
Charge les DLL dans ton appli...
Pour les Fonction d'interface tu peux utiliser la classe d'edition de liens STD

Reply

Marsh Posté le 13-04-2001 à 13:09:21    

Bon ben j'vais tester C++Builder alors.
Merci bien tout le monde.


---------------
La vie n'est pas un restaurant mais un buffet. Levez-vous pour vous servir.
Reply

Marsh Posté le 13-04-2001 à 14:26:35    

Bon alors c++ builder c bien mais ca coute des sous sous tout ca.
Donc j'ai crée ma dll ,jusque la no souci. J'arrive a partir de Vb a appeler les fonctions de ma dll , a recupérer la valeur qu'elles retournent mais , impossible de passer une variable en param a ces fichues fonction.
 
Exemple :
 
Dans ma dll j'ai une foncttion declarée de la facon suivante :
  extern "C" __declspec(dllexport) int test2(int);
 
Le code ressemble a ca :
  int test2 (int val)
  {
      return val + 3;
  }
 
Dans VB je la déclare comme ca:
  Declare Function test2 Lib "tmp2.dll" (a As Integer) As Integer
 
Et je l'apelle comme ca :
  max = test2(5)
 
:fou:  
ET CA MARCHE PAS ET CA M'ENERVE ALORS QUE QUAND J'FAIS PAREIL AVEC UNE FONCTION QUI NE PREND PAS DE PARAM CA MARCHE !  
:gun:  
 
Alors si vous pouviez me sauver la vie .....


---------------
La vie n'est pas un restaurant mais un buffet. Levez-vous pour vous servir.
Reply

Marsh Posté le 13-04-2001 à 16:21:10    

Up!

Reply

Marsh Posté le 13-04-2001 à 16:35:26    

Essaye en spécifiant le type de passage des paramètres genre :
 
Declare Function test2 Lib "tmp2.dll" (ByVal a As Integer) As Integer
 
Je ne sai spas si ca va marcher, m'enfin fo tester

 

[edit]--Message édité par Lord II--[/edit]


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 13-04-2001 à 17:01:28    

Ca a pas l'air de marcher bcp plus m'enfin je verais ca plus tard.
Ca suffit pour aujourd'hui , je me met en greve ! :crazy:

Reply

Marsh Posté le 13-04-2001 à 19:13:17    

ce serait pas plustot ByRef? :pt1cable:

Reply

Marsh Posté le 13-04-2001 à 19:13:17   

Reply

Marsh Posté le 16-04-2001 à 05:41:01    

Declare Function test2 Lib "tmp2.dll" (ByRef a As Long) As Long <--- devré fonctionner

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed