求一例子程序:主工程与DLL模块之间的通信,在线等 求一例子程序:主工程与DLL模块之间的通信,交互。RT~~多谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通信?dll有接口就行了吧 主工程(dlg)发消息给DLL收,DLL发消息给主工程(dlg)收。如何让DLL得到主程序dlg的句柄等等~~因为得到句柄才好发消息和数据啊~ 只要知道窗口句柄,直接postmessage就行DLL也可以直接发向NULL,也表示发到主消息循环 能不能给几句实现的代码例子呢?主对话框中以下语句向DLL中传递了主对话框的句柄hparent: info.pPlug->CreateForm(hparent);DLL中如下函数接受了该句柄hparent:void CClass1DataReadPlugin::CreateForm(HWND hParent){}现在hparent就是主窗口的句柄,要在DLL中通过这个句柄调用主窗口类的函数怎么写?要向主窗口发消息怎么写?谢谢~ DLL中#define WM_GETMESSAGE WM_USER+112 //自定义消息HANDLE hMapping; LPWSTR lpData; hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MYSHARE"); if(hMapping!=NULL){lpData=(LPWSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);if(lpData!=NULL){swprintf(lpData,L"%s","你要写的数据");//给主线程发送消息 g_hMain是目标进程的窗口句柄PostMessage(g_hMain,WM_GETMESSAGE,NULL,NULL); }UnmapViewOfFile(lpData); }主窗口进程添加自定义消息WM_GETMESSAGE代码省略接收函数LRESULT CMainDlg::OnReceiveMessage(WPARAM wParam, LPARAM lParam){ HANDLE hMapping; LPWSTR lpData; hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MYSHARE"); if(hMapping!=NULL) { lpData=(LPWSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0); if(lpData!=NULL) { CString strText(lpData); //处理接收到的数据 ....... } UnmapViewOfFile(lpData); } return true;} 小弟求教一个DLL问题,写的测试程序报内存错误,跟函数到一个tli里面就不能继续下去了,求帮助。 mfc程序调试问题 怎样修改其他应用程序上面的按钮颜色和窗体背景 关于内存管理的一个小问题 activex控件还能加密么?为什么我的mapx40.ocx不能注册呢? 寻求DICOM 3.0的中文译文,我愿用全部的分交换 如何在OnDraw函数中调用自定义函数void showplate(CDC *pDC) 关于网页上用自编ActiveX控件的问题 找多语言开发资料,请帮帮忙 怎么样给对话框加图标? 主对话框与DLL模块之间的通信,求一例子程序或关键代码 新手学vc,简单的自定义函数
dll有接口就行了吧
DLL也可以直接发向NULL,也表示发到主消息循环
主对话框中以下语句向DLL中传递了主对话框的句柄hparent:
info.pPlug->CreateForm(hparent);DLL中如下函数接受了该句柄hparent:
void CClass1DataReadPlugin::CreateForm(HWND hParent)
{
}现在hparent就是主窗口的句柄,要在DLL中通过这个句柄调用主窗口类的函数怎么写?要向主窗口发消息怎么写?谢谢~
DLL中
#define WM_GETMESSAGE WM_USER+112 //自定义消息
HANDLE hMapping;
LPWSTR lpData;
hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MYSHARE");
if(hMapping!=NULL)
{
lpData=(LPWSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
if(lpData!=NULL)
{
swprintf(lpData,L"%s","你要写的数据");
//给主线程发送消息 g_hMain是目标进程的窗口句柄
PostMessage(g_hMain,WM_GETMESSAGE,NULL,NULL);
}
UnmapViewOfFile(lpData);
}
主窗口进程添加自定义消息WM_GETMESSAGE代码省略接收函数
LRESULT CMainDlg::OnReceiveMessage(WPARAM wParam, LPARAM lParam)
{
HANDLE hMapping;
LPWSTR lpData;
hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MYSHARE");
if(hMapping!=NULL)
{
lpData=(LPWSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
if(lpData!=NULL)
{
CString strText(lpData);
//处理接收到的数据
.......
}
UnmapViewOfFile(lpData);
}
return true;
}