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");
任何人都可以告诉我如何删除此编译错误。
答案 0 :(得分:2)
您的代码有两个问题:
HINSTANCE变量声明为LoadME,但在初始化和使用时拼写为LoadMe。选择一种拼写或其他拼写。
if语句后面的两行在不同的范围内。这是您看到的编译器错误的原因。将这些行括在大括号中,使它们在同一范围内
这对我有用:
typedef void (*EntryPointfuncPtr)(int argc, const char * argv);
HINSTANCE LoadMe;
LoadMe = LoadLibrary("LoadMe.dll");
if (LoadMe != 0)
{
EntryPointfuncPtr LibMainEntryPoint;
LibMainEntryPoint = (EntryPointfuncPtr)GetProcAddress(LoadMe,"entryPoint");
}
安迪
答案 1 :(得分:0)
将typedef更改为此可能有效:
typedef void (*EntryPointfuncPtr)(int, const char*);