2009-06-11 10 views
0
typedef void (*EntryPointfuncPtr)(int argc, const char * argv); 
HINSTANCE LoadME; 
LoadMe = LoadLibrary("LoadMe.dll"); 
if (LoadMe != 0) 
EntryPointfuncPtr LibMainEntryPoint; //GIve error in .c file but working fine in Cpp file. 

//Error:illegal use of this type as an expression 

LibMainEntryPoint = (EntryPointfuncPtr)GetProcAddress(LoadMe,"entryPoint"); 

Kann mir jemand sagen, wie man diesen Kompilierfehler entfernt.Problem beim Laden einer DLL in .c-Datei

Antwort

0

Ändern der typedef dies funktionieren könnte:

typedef void (*EntryPointfuncPtr)(int, const char*); 
2

Ihr Code hat zwei Probleme:

  1. Die HINSTANCE Variable wird als LoadME erklärt, aber LoadMe Dinkel, wenn seine initialisiert und verwendet. Wählen Sie die eine oder die andere Schreibweise.

  2. Die beiden Zeilen nach der if-Anweisung befinden sich in unterschiedlichen Bereichen. Dies ist die Ursache für den Compilerfehler, den Sie sehen. Schließen Sie die Linien in Klammern, so dass sie im gleichen Umfang sind

Dies funktioniert für mich:

typedef void (*EntryPointfuncPtr)(int argc, const char * argv); 
HINSTANCE LoadMe; 
LoadMe = LoadLibrary("LoadMe.dll"); 
if (LoadMe != 0) 
{ 
    EntryPointfuncPtr LibMainEntryPoint; 
    LibMainEntryPoint = (EntryPointfuncPtr)GetProcAddress(LoadMe,"entryPoint"); 
} 

Andy