我尝试在以下代码中使用DllImport属性:
[DllImport("grfinger.dll",EntryPoint="_grstartenroll@4")]
public static extern int startenroll(int context);为了获得函数名,我使用了dumpbin /export。当我运行代码时,我得到了以下异常:
Unable to find an entry point name '_grstartenroll@4' in DLL 'grfinger.dll'。
如何解决此错误?
发布于 2009-10-12 13:13:07
_grstartenroll@4是动态链接库中的decorated function name。
这看起来像标准的调用约定命名,您可以尝试:
[DllImport("grfinger.dll",EntryPoint="_grstartenroll@4", CallingConvention=CallingConvention.StdCall]
public static extern int startenroll(int context);否则,我将尝试获取未修饰的函数名,您可以通过管道将dumpbin的输出传递给undname,如下所示:
dumpbin /exports grfinger.dll |未命名_grstartenroll@4
然后在dll导入中使用未修饰的函数名。
发布于 2009-10-12 13:00:04
在不了解特定函数或库的情况下:我认为将入口点指定为entrypoint="startenroll"或entrypoint="#4"而不是垃圾箱输出可能会有所帮助。
https://stackoverflow.com/questions/1554353
复制相似问题