Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET客户端-MFC常规DLL和用户定义的消息_.net_Dll_Mfc_Messaging - Fatal编程技术网

.NET客户端-MFC常规DLL和用户定义的消息

.NET客户端-MFC常规DLL和用户定义的消息,.net,dll,mfc,messaging,.net,Dll,Mfc,Messaging,更新:这是一个.NET客户端调用常规DLL。我还得到了另一个扩展DLL,它导出了一些类,并在常规DLL中使用 我有一个第三方DLL,它将WindowHandle和用户定义的消息作为参数,并开始向传递的窗口发送消息,但我没有看到任何消息到达我的窗口。以下是API调用格式: StartMessaging(<WindowHandle>,WM_MESSAGE_API); 我的主类,其中StartMessage被称为: 在构造函数中,我实例化了CFrameWnd对象: myDerivedWn

更新:这是一个.NET客户端调用常规DLL。我还得到了另一个扩展DLL,它导出了一些类,并在常规DLL中使用

我有一个第三方DLL,它将WindowHandle和用户定义的消息作为参数,并开始向传递的窗口发送消息,但我没有看到任何消息到达我的窗口。以下是API调用格式:

StartMessaging(<WindowHandle>,WM_MESSAGE_API);
我的主类,其中StartMessage被称为: 在构造函数中,我实例化了CFrameWnd对象:

myDerivedWnd=新的CMydrivedWnd(本)

然后称为InitiateMessage:

void CMain::InitiateMessaging()
 {
  TCHAR szBuf[80];
  ::GetWindowText(myDerivedWnd->m_hWnd,szBuf,80);
  OutputDebugString((LPSTR)(LPCTSTR)szBuf); //This displays MYWINDOW
  StartMessaging(myDerivedWnd->m_hWnd,WM_MESSAGE_API);
 }
我的GetWindowText函数返回正确的窗口名,但我无法在此类中捕获WM_MESSAGE_API MESSAGE。
我也尝试过使用扩展DLL,但结果相同。

我发现了问题,但还没有找到答案。这是线程在C端导致事件不显示。如果调用C++互操作在主线程上,事件工作,但我需要调用是在一个单独的线程。我计划发布另一个问题以找到答案。

我有一个基于MFC对话框的示例应用程序,它使用相同的API。我忘了提到这个常规DLL是从.NET客户端调用的。
void CMain::InitiateMessaging()
 {
  TCHAR szBuf[80];
  ::GetWindowText(myDerivedWnd->m_hWnd,szBuf,80);
  OutputDebugString((LPSTR)(LPCTSTR)szBuf); //This displays MYWINDOW
  StartMessaging(myDerivedWnd->m_hWnd,WM_MESSAGE_API);
 }