在服务中使用 DialogBoxParam 的时候无法使用资源文件所以会报错,你要使用 DialogBoxIndirectParam 函数就可以了,该函数的用法如下:
格式
DialogBoxIndirectParam hInstance,
lpTemplateName,
hWndParent,
lPDialogFunc,
dwInitParam
参数说明
hInstance --标识一个模块的事例,该模块的可执行文件含有对话框模板。
lpTemplateName--指向含有一个模板的全局内存对象的指针对话框模板。另外可以使用工具生成可用的二进制文件直接链接到程序中,详见备注
hWndParent--指定拥有对话框的窗口。可以为NULL
lpDialogFunc 指向对话框过程的指针。有关更详细的关于对话框过程的信息,请参见DialogProc
dwInitParam 指定传递到WM_INITDIALOG消息的lparam参数中的对话框过程的值。可以为NULL
备注:在汇编中 lpTemplateName 指向的模版资源的生成方法
一、生成可链接的目标文件 xxx.obj 方法如下:
1.用 RC 生成标准的资源文件 RC Rc.RC Rsrc.RES
2.用
Res2obj.exe 把生成好的标准资源文件转成二进制文件
格式: res2obj Rsrc.res Rsrc.obj _Resource
3.把 Rsrc.obj 文件加入到链接器生成程序
二、在源文件中引用模版
1.首先使用宏指令 EXTERN 指名指定的资源名 EXTERN Resource:byte
2.使用此函数时引用此资源:lpTemplateName 参数为 addr Resource