[問題] 靜態函式庫轉動態函式庫
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
假如我有一組靜態函式庫和宣告
abcd.a
abcd.h
abcd.h 假設裡面某一個函式宣告為
int FunctionA(int Arg);
主程式是一個動態 DLL 程式
dllMain.h :
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else
# define DLLIMPORT __declspec (dllimport)
#endif
DLLIMPORT int __stdcall FunAPI(int Arg);
dllMain.cpp :
#include <stdio.h>
#include <windows.h>
#include "abcd.h" // include 並且使用 FunctionA 函式
#include "dllMain.h"
int FunAPI(int Arg)
{
return FunctionA(Arg);
}
BOOL APIENTRY DllMain(HINSTANCE hInst,
DWORD reason,
LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
加入 abcd.a 編譯完成得到
libdllMain.a
libdllMain.def
dllMain.dll
之後的程式只要使用 dllMain.dll dllMain.h libdllMain.a
就可以透過 FunAPI 來存取 FunctionA 函式了
現在有一個問題是
有沒有一種編譯方式或其他方法可以將靜態函式庫的 FunctionA 函式
直接 export 出來給其他程式作為動態 DLL 連接用
而不用像上面方法要透過其他函式做銜接
因為我並沒有 abcd.a 的原始碼才無法改寫重新編譯
且我們末端程式一定要用 DLL 連結來使用函式
所以才會有此情況
謝謝各位的幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.161.161
→
10/19 17:15, , 1F
10/19 17:15, 1F
→
10/19 17:22, , 2F
10/19 17:22, 2F
→
10/19 17:23, , 3F
10/19 17:23, 3F
→
10/19 17:24, , 4F
10/19 17:24, 4F
推
10/19 17:27, , 5F
10/19 17:27, 5F
→
10/19 17:27, , 6F
10/19 17:27, 6F
推
10/19 17:54, , 7F
10/19 17:54, 7F
→
10/19 17:54, , 8F
10/19 17:54, 8F
→
10/19 17:57, , 9F
10/19 17:57, 9F
→
10/19 17:58, , 10F
10/19 17:58, 10F
推
10/19 18:02, , 11F
10/19 18:02, 11F
→
10/19 18:02, , 12F
10/19 18:02, 12F
→
10/19 18:25, , 13F
10/19 18:25, 13F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章