![](/img/trans.png)
[英]Unable to find an entry point named '' in DLL 'cvextern'
[英]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导出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.