怎么样VB向VC发送数据,我用SENGMESSAGE 发数据与VC成功,可是sendmessage数据类型是长整形,VC怎么接受一个文件名呀
有没有这方面的例程??
我看zhmjz(我可是个大-天-才) 这个问题与我差不多 能不能教我这么做呀??能发送,可vc怎么接受那文件名呀??
急求!!!!!
Dim hvcfile As Long
Dim CD As COPYDATASTRUCT
Dim sfile As String
hvcfile = FindWindow(vbNullString, "Control the CAM350") '发送到"control the cam350"这个VC运行程序
sfile = "e:\ouyang\GERBER\GBX\MA009S0707001.GBX"
CD.dwData = Len(sfile)
CD.lpData = StrPtr(sfile)
If hvcfile <> 0 Then
hvcfile = SendMessage(hvcfile, WM_COPYDATA, 0, VarPtr(CD))
MsgBox ("sendmessage OK")
Else
MsgBox ("error!sendmessage fail!")
End If
End Sub
有没有这方面的例程??
我看zhmjz(我可是个大-天-才) 这个问题与我差不多 能不能教我这么做呀??能发送,可vc怎么接受那文件名呀??
急求!!!!!
Dim hvcfile As Long
Dim CD As COPYDATASTRUCT
Dim sfile As String
hvcfile = FindWindow(vbNullString, "Control the CAM350") '发送到"control the cam350"这个VC运行程序
sfile = "e:\ouyang\GERBER\GBX\MA009S0707001.GBX"
CD.dwData = Len(sfile)
CD.lpData = StrPtr(sfile)
If hvcfile <> 0 Then
hvcfile = SendMessage(hvcfile, WM_COPYDATA, 0, VarPtr(CD))
MsgBox ("sendmessage OK")
Else
MsgBox ("error!sendmessage fail!")
End If
End Sub
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch message:
case WM_COPYDATA:
..................................//??这里该怎么写获得上面那程序传过来的文件名,把它赋予一变量
//COPYDATASTRUCT CD;
// memcpy(lParam,CD,sizeof(struct tagCOPYDATASTRUCT)); break;
大虾们,还望指点.很急!! 麻烦了
Option ExplicitPrivate Const WM_COPYDATA = &H4APrivate Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End TypePrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_Click()
Dim hwndRecv As Long
hwndRecv = FindWindow("RECVSTRING", "RecvString")
If hwndRecv = 0 Then
MsgBox "你还没启动VC方程序接收字符串", vbInformation, "vb:发送字符串"
Exit Sub
End If
Dim sText As String
Dim cds As COPYDATASTRUCT
sText = Text1.Text
cds.cbData = LenB(sText)
cds.lpData = StrPtr(sText)
Call SendMessage(hwndRecv, WM_COPYDATA, 0, cds)
MsgBox "字符串已经发送出去"
End Subvc:
case WM_COPYDATA:
{
PCOPYDATASTRUCT pcd = (PCOPYDATASTRUCT)lParam; int cch = (pcd->cbData / sizeof(WCHAR));
PWSTR pszRecv = new WCHAR[cch + 1];
memcpy(pszRecv, pcd->lpData, pcd->cbData);
pszRecv[cch] = L'\0'; MessageBoxW(hWnd, pszRecv, L"vc:接收字符串", MB_OK); delete [] pszRecv;
return TRUE;
}