我正在學習如何使用 dll 以及如何匯出它們。我創建了一個小程式,它呼叫我的 dll 檔案的不同組件(類、方法、函式等)來使用它們。當我構建專案時,我沒有問題,但是當我編譯測驗代碼時,我得到了這個錯誤。

錯誤翻譯:{在 DLL“C:\Users\zboussaid\source\repos\WrapperTester\Debug”中找不到程式入口點“?Start@K_WrapperTeigha_DXF_DWG@@QAEXXZ”}。
圖片顯示我的DLL檔案中的一個函式start方法在我的測驗代碼所在的路徑中找不到。我已嘗試按照此 drescription 所示配置我的屬性,但正如我所說,我收到此錯誤。如果您能幫助我,我將不勝感激
類定義:
extern "C" class KWRAPPERTEIG_API K_WrapperTeigha_DXF_DWG
{
private:
//create Data base
OdDbDatabase* pDb;
//tables
OdDbLinetypeTablePtr w_kOdLinetypeTablePtr;
OdDbLayerTablePtr w_kOdLayerTablePtr;
OdDbTextStyleTablePtr w_kOdTextStyleTablePtr;
OdDbBlockTablePtr w_kOdBlockTablePtr;
OdDbBlockTableRecordPtr w_kOdModelSpaceBlockRecPtr;
//OdDbTextStyleTableRecordPtr pTextStyle;
public:
OdDb::DwgVersion m_OdDwgVersion; // Dwg/Dxf Version
OdDb::SaveType m_OdSaveType; // DWG oder DXF
public:
K_WrapperTeigha_DXF_DWG();
~K_WrapperTeigha_DXF_DWG();
void Start();
}
宏:
#ifdef KWRAPPERTEIG_EXPORTS
#define KWRAPPERTEIG_API __declspec(dllexport)
#ifndef KWRAPPERTEIG__DLL
#define KWRAPPERTEIG__DLL
#endif
#else
#define KWRAPPERTEIG_API __declspec(dllimport)
#endif
uj5u.com熱心網友回復:
這實質上意味著您的宏KWRAPPERTEIG_API未正確定義。它應該擴展為__declspec(dllexport)以便匯出類函式。
extern "C"應該關閉函式的名稱修飾,因此它們可以被 C 使用。這可以作業,因為 C 理解函式,而不是多載函式。但是C不理解類或類方法,所以它在那里有點毫無意義。你可以看到它Start@K_WrapperTeigha_DXF_DWG@@QAEXXZ仍然被破壞了。
uj5u.com熱心網友回復:
@YujianYao-MSFT 和 Kiner_shah 我非常感謝您的幫助。我已經解決了這個問題。我的問題是我在星期五創建了 dll 檔案,然后想到更改創建 dll 檔案的位置并忘記了它。然后在星期一我復制了不包含我的 start() 方法的舊檔案。所以問題是dll檔案設定的引數化錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/430928.html
上一篇:用于包布局的SSIS鍵盤快捷鍵
