2012-07-11 63 views
0

我正在使用一個C++項目,其中兩個進程(運行在同一臺機器上)通過TCP使用WinSock進行通信。進程'A'加載了幾個必須由進程'B'使用的Dll。使用Winsock發送/接收HMODULE

但是,我很難理解如何在這種情況下使用send/recv方法來發送和接收HMODULE。可能嗎?如果是這樣,那麼正確的方法是什麼。 (我蜂嘗試一些如下圖):

方法A:

 HMODULE hmod = LoadLibrary(L"MathFunc.dll"); 
     iResult = send(Socket, (char*)hmod, sizeof(HMODULE), 0); 

流程B:

typedef double (* addFunc)(double, double); 

int __cdecl main(void) 
{ 
... 
HMODULE receiver; 
iResult = recv(ClientSocket, (char*)&receiver, sizeof(HMODULE), 0); 
addFunc adder = (addFunc)GetProcAddress(receiver, "Add"); 
double resi = adder(1.0, 2.0); 
... 
return 0; 
} 

感謝。

回答

1

進程'A'加載了幾個Dll,它們必須被進程'B'使用。

這已經不可能了,更不用說發送HMODULES了。進程必須加載它自己的DLL。