【发布时间】:2013-11-07 16:11:56
【问题描述】:
我创建了一个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。
请问有人可以在这方面帮助我吗?
【问题讨论】:
标签: c# winapi dll interop dllimport