![](/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.