作者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
1F:推 VictorTom:应该是 A.exe <-------> B.dll 这样的型式就好了吧?? 05/13 13:51
2F:→ VictorTom:啊我误会了, 请别理会小弟....Orz 05/13 13:52