作者qazq (...)
看板C_and_CPP
標題Re: [問題] 如何透過dll控制其他程式
時間Wed May 13 13:30:15 2009
※ 引述《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