簡體   English   中英

無法找到名為的入口點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM