找不到名为的入口点
Unable to find an entry point named
我正在用c#编写一个应用程序,该应用程序使用用cpp编写的第三方dll。我对dll进行了几次调用,除一次调用外,其他调用都在工作。
我的代码以以下方式进行调用:
return ObjectGetStringEntryID(pObject, strEntryID, strEntryID.Capacity);
[DllImport(EXTERNAL_DLL, CharSet = DefaultCharSet)]
protected static extern bool ObjectGetStringEntryID(IntPtr pObject, StringBuilder strEntryID, int nMaxLength);
由于我可以访问源代码,我知道它包含以下定义:
BOOL ObjectGetStringEntryID(CMAPIObject* pObject, LPTSTR szEntryID, int nMaxLength)
如前所述,我使用相同的格式对这个dll进行了其他几次调用,它们都是成功的。
因此,如果有帮助的话,我有以下设置:
public const CharSet DefaultCharSet = CharSet.Ansi;
有人看到我的电话里可能做错了什么吗?来自同一个班级,我叫:
MessageGetSubject(pObject, strSubject, strSubject.Capacity);
[DllImport(EXTERNAL_DLL, CharSet = DefaultCharSet)]
protected static extern void MessageGetSubject(IntPtr pMessage, StringBuilder strSubject, int nMaxLength);
与方法匹配的:
void MessageGetSubject(CMAPIMessage* pMessage, LPTSTR szSubject, int nMaxLength)
这与不起作用的调用来自c#和cpp中的相同类,但它运行得很好。它的命名方式似乎没有任何区别,所以它们要么有效,要么无效。
如果有人知道我做错了什么,我将非常感谢你的帮助。
EntryPointNotFoundException
表示DLL不导出符号ObjectGetStringEntryID
。检查导出文件(或__declspec声明)以确保它已导出,并按该名称导出。
这可能有帮助:从DLL 导出
相关文章:
- SWIG c++ 到 C# 错误找不到入口点SWIGRegisterExceptionCallbacks_xxxx
- C++ minGW 找不到过程入口点
- 运行 exe - C++ 时找不到入口点
- 找不到 DLL 入口点
- 找不到名为的入口点
- 在 dll 中找不到过程入口点GOMP_parallel
- DirectX 11.2 错误: X3501: 找不到'main'入口点
- 在Vista操作系统中找不到入口点错误
- MSVC2013 - 找不到入口点
- 在 C# 中调用 C++ dll 时找不到入口点
- 找不到过程入口点__gxx_personality_v0
- SFML 错误,出现C++,找不到入口点
- 在Windows中执行system()时找不到入口点
- System.EntryNotFoundException:在DLL中找不到入口点
- 在dll libmysql.dll中找不到过程入口点mysql_get_option
- 警告:编译到.so时找不到入口符号start-
- 在动态链接库libstdc++-6.dll中找不到过程入口点_gxx_personality_v0.错误
- 在32位DLL中找不到入口点.使用64位DLL
- Oracle 数据库中的 OCCI - 找不到过程 OCIPIsDesc.dll 库中重建的入口点
- 在中找不到过程入口点__gxx_personality_sj0.