Problème de linkage sur une appli C sous .NET

Problème de linkage sur une appli C sous .NET - C - Programmation

Marsh Posté le 02-03-2004 à 14:18:11    

Une application d'un seul fichier "c" doit tourner en tant que service.
J'utilise donc en plus les fichiers service.cpp, service.h, simple.cpp.
Le fichier S_Gest_Evt_Expl.c contient une seule fonction main_org:

Code :
  1. int main_org(int argc, char *argv[])
  2. {


 
Le fichier simple.cpp:

Code :
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <process.h>
  5. #include <tchar.h>
  6. #include "service.h"
  7. extern int main_org(int argc, char *argv[]);
  8. extern int chdir (const char *);
  9. .
  10. .
  11. .
  12. .
  13. VOID ServiceStart (DWORD dwArgc, LPTSTR *lpszArgv)
  14. {
  15.     ////////////////////////////////////////////////////////
  16.     //
  17.     // Service is now running, perform work until shutdown
  18.     //
  19. main_org(dwArgc , lpszArgv);
  20. exit(0);
  21. }


 
Voici le résultat du Build Debug et/ou Release sur .NET:

Code :
  1. ------ Rebuild All started: Project: S_GEST_EVT_EXPL, Configuration: Debug Win32 ------
  2. Deleting intermediate files and output files for project 'S_GEST_EVT_EXPL', configuration 'Debug|Win32'.
  3. Compiling...
  4. simple.cpp
  5. service.cpp
  6. Generating Code...
  7. Compiling...
  8. S_Gest_Evt_Expl.c
  9. Linking...
  10. simple.obj : fatal error LNK1284: metadata inconsistent with COFF symbol table: symbol '?main_org@@$$FYAHHQAPAD@Z' (0A00001E) mapped to '?main_org@@$$J0YAHHPAPAD@Z' (06000001) in S_Gest_Evt_Expl.obj
  11. Build log was saved at "file://d:\Dev\Aei\S_gest_evt_expl\Debug\BuildLog.htm"
  12. S_GEST_EVT_EXPL - 1 error(s), 0 warning(s)
  13. ---------------------- Done ----------------------


 
2 autres projets utilisent exactement le même schéma de service. Les 3 fichiers de service sont identiques, et l'appel vers le  main_org de l'appli se fait de la même facon.
 
Si quelqu'un a un début de piste, je suis preneur.
Merci de vos réponses

Reply

Marsh Posté le 02-03-2004 à 14:18:11   

Reply

Sujets relatifs:

Leave a Replay

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