我创建了一个 WIN32 DLL 项目,它的 dllmain.cpp 如下;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
_declspec(dllexport) float RGBCompare()
{
return 100;
}
我的目标是从 C# 项目中调用方法 RGBCompare,并且按照我之前提到的 dllexport 标记的规则。
在 C# 项目的另一边,我定义了一个入口点,如下所示;
namespace LogoFinderWrapper
{
public class LogoFinder
{
[DllImport("LogoIdentifier.dll", EntryPoint = "RGBCompare")]
private static extern float Api_RGBCompare();
public static float RGBCompare()
{
return Api_RGBCompare();
}
}
}
当我调用 DLL 时,它会引发异常 System.EntryPointNotFoundException。
请问有人可以在这方面帮助我吗?