[問題] 匯入c++寫的dll檔

看板C_Sharp (C#)作者 (raison detre)時間18年前 (2007/07/09 10:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
請問各位我要把c++寫成的dll檔在c#中使用 可是一直遇到 "找不到名稱為 fnLibEncrypt 的進入點 (在 DLL LibEncrypt.dll 中)"的 問題 後來我直接開一個專 c++的專案 用最簡單的方式來測試可是問題還是一樣 我在本站及各大網站上看到的方法都大同小異,可是我試了以後還是不行 可以麻煩各位幫我看一下嘛 //******************* LibEncrypt.h ******************* #define LIBENCRYPT_API __declspec(dllexport) /* #ifdef LIBENCRYPT_EXPORTS #define LIBENCRYPT_API __declspec(dllexport) #else #define LIBENCRYPT_API __declspec(dllimport) #endif */ // 這個類別是從 LibEncrypt.dll 匯出的 class LIBENCRYPT_API CLibEncrypt { public: CLibEncrypt(void); }; extern LIBENCRYPT_API int nLibEncrypt; LIBENCRYPT_API int fnLibEncrypt(void); //******************* LibEncrypt.cpp ******************* // LibEncrypt.cpp : 定義 DLL 應用程式的進入點。 #include "stdafx.h" #include "LibEncrypt.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } // 這是匯出變數的範例 LIBENCRYPT_API int nLibEncrypt=0; // 這是匯出函式的範例。 LIBENCRYPT_API int fnLibEncrypt(void) { return 42; } // 這是已匯出之類別的建構函式。 // 該類別的定義請參閱 LibEncrypt.h CLibEncrypt::CLibEncrypt() { return; } //******************* C#裡頭的使用 ******************* [DllImport( "LibEncrypt.dll",EntryPoint="fnLibEncrypt",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)] public static extern int fnLibEncrypt(); private void BtnOK_Click(object sender, System.EventArgs e) { int a = fnLibEncrypt(); bCheck = true; this.Close(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.220.110.100
文章代碼(AID): #16aPU7tP (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #16aPU7tP (C_Sharp)