看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《freehand1122 (jychen)》之銘言: : 假設我撰寫兩個程式A,B跟一個dll檔 : B程式有一個function是做簡單的運算,最後回傳值印出 : 如果今天我想用A程式透過dll去呼叫B程式的function,請問該如何做 A.exe <-------> xxx.dll <-------> B.exe 你所說的架構應該是這樣吧。 不過有點做白工的感覺,直接 call xxx.dll 做簡單運算 不然直接執行 B.exe 透過一個中間者有點浪費。 XD : A.exe:main() int main() { dll = LoadLibrary("xxx.dll"); fptr = GetProcAddress(dll, "xxx_fun"); int ret = fptr(); FreeLibray(dll); return 0; } : xxx.dll:xxx_fun() int xxx_fun() { PROCESS_INFORMATION pi; ZeroMemory(&pi, sizeof(pi)); int ret = 0; if (CreateProcess("B.exe", NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, NULL, &pi)) { WaitForSingleObject(pi.hProcess, INFINITE); GetExitCodeProcess(pi.hProcess, &ret); } return ret; } : B.exe:main() int main() { return 1000; } -- 超好用豬頭記帳!! 下載:http://qazq.pixnet.net/blog/post/21654150 程式截圖:http://140.120.13.13/~qazq/PigHeadMoney/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.21.127.208
VictorTom:應該是 A.exe <-------> B.dll 這樣的型式就好了吧?? 05/13 13:51
VictorTom:啊我誤會了, 請別理會小弟....Orz 05/13 13:52