低级问题:为啥俺的控件面板程序不行呀!
vcmfc 2001-02-20 12:52:00 这两天写一个控制面板,发现有以下问题:在CPlApplet收到第一个消息CPL_INIT后
就再也接收不到消息了,产一个异常中断?,请大家顺手解决一下!,谢谢大家。
程序环境:程序使用Win32 Dynamic-link Library向导产生的程序,不与MFC产生关系!
OS环境:WIN NT 4 Workstation
顺便再问一个问题:如何在控件面板中放入我的程序的图标,是写注册表吗?,如何写?
以下是程序源程序:
#include "stdafx.h"
#include <cpl.h>
#include "resource.h"
HINSTANCE hInstance=NULL;
//对话处理过程,太长就不列了。
BOOL CALLBACK CPLDlgDefProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
BOOL APIENTRY DllMain( HINSTANCE hModule, DWORD dwReason,LPVOID lpReserved)
{
if(dwReason==DLL_PROCESS_ATTACH)//需要这个判断吗?
hInstance=hModule;
return TRUE;
}
extern "C" __declspec(dllexport) LONG CPlApplet(HWND hWndCPL,UINT uMsg,LONG lParam1,LONG lParam2)
{
//处理控件面板消息
LONG nResult=0;
LPCPLINFO lpCPLInfo;
switch(uMsg)
{
case CPL_INIT://收到该消息,但一结束后控制面板提出有异常!,why?
MessageBox(NULL,"init","PROMPT",MB_OK);//正常显示
nResult=TRUE;
break;
case CPL_GETCOUNT://没收到该消息呀!
MessageBox(NULL,"ERROR","PROMPT",MB_OK);//没有显示出来呀
nResult=1;
break;
case CPL_INQUIRE:
lpCPLInfo=(LPCPLINFO)lParam2;
lpCPLInfo->lData=0;
lpCPLInfo->idName=IDD_TITLE;
lpCPLInfo->idInfo=IDD_TITLE;
lpCPLInfo->idIcon=ICO_HRTMOUSE;
break;
case CPL_DBLCLK:
FARPROC lpProcDlg;
lpProcDlg=(FARPROC)MakeProcInstance(CPLDlgDefProc,hInstance);
DialogBox(hInstance,MAKEINTRESOURCE(DLG_GENERAL),hWndCPL,(DLGPROC)lpProcDlg);
FreeProcInstance(lpProcDlg);
break;
case CPL_STOP:
break;
case CPL_EXIT:
break;
default:
break;
}
return nResult;
}
方便的话给我点资料呀!:vcmfc