WINCE6.0在控制面板添加应用程序不成功

guetcw 2011-08-16 11:04:38
已以生成cpl,直接双击cpl可以调出应用程序,但是控制面板里不出现cpl的图标。我是按照MSDN的帮助的例子做的,和这个贴子的一样
http://blog.csdn.net/jjunjoe/article/details/6120601

调试发现是加载ICON失败,加载字符串资源也失败,ICON和字符串资源我都做好了的就是加载不成功

case CPL_NEWINQUIRE:
// This message is sent once for each dialog box, as
// determined by the value returned from CPL_GETCOUNT.
// lParam1 is the 0-based index of the dialog box.
// lParam2 is a pointer to the NEWCPLINFO structure.
{
ASSERT(0 == lParam1);
ASSERT(lParam2);

NEWCPLINFO* lpNewCplInfo = (NEWCPLINFO *) lParam2;
NKDbgPrintfW( (TEXT("HelloCPL:11111111111\r\n")));
if (lpNewCplInfo)
{
lpNewCplInfo->dwSize = sizeof(NEWCPLINFO);
lpNewCplInfo->dwFlags = 0;
lpNewCplInfo->dwHelpContext = 0;
lpNewCplInfo->lData = IDI_HelloWorld;

// The large icon for this application. Do not free this
// HICON; it is freed by the Control Panel infrastructure.
NKDbgPrintfW( (TEXT("HelloCPL:LoadIcon g_hModule %X\r\n")), g_hModule);
lpNewCplInfo->hIcon = LoadIcon(g_hModule, MAKEINTRESOURCE(IDI_HelloWorld));
NKDbgPrintfW( (TEXT("HelloCPL:LoadIcon %X\r\n")), lpNewCplInfo->hIcon);

int i = LoadString(g_hModule, IDS_APP_TITLE, lpNewCplInfo->szName, lengthof(lpNewCplInfo->szName));
NKDbgPrintfW( (TEXT("HelloCPL:LoadString %d\r\n")), i);

LoadString(g_hModule, IDC_HelloWorld, lpNewCplInfo->szInfo, lengthof(lpNewCplInfo->szInfo));
NKDbgPrintfW( (TEXT("HelloCPL:LoadString\r\n")));
_tcscpy(lpNewCplInfo->szHelpFile, _T(""));
return 0;
}
return 1; // Nonzero value means CPlApplet failed.
}

LoadIcon和LoadString都返回0,不知道哪里搞错了
...全文
379 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单并快乐着 2012-11-16
  • 打赏
  • 举报
回复
mark ,我来搞一下。奶奶的, 以前我都没搞,其实还是有搞头的。
surelion 2011-10-24
  • 打赏
  • 举报
回复
真的大汗一个啊。这个问题折腾我2个星期!!!!我也解决了。
Ei 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 guetcw 的回复:]
搞定了,原来建工程的是sources文件默认没有把.rc加到SOURCES=下去,加上去就OK了
SOURCES= \
HelloCPL.cpp \
HelloCPL.rc
[/Quote]
汗一个。。。
loongembedded 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 guetcw 的回复:]
搞定了,原来建工程的是sources文件默认没有把.rc加到SOURCES=下去,加上去就OK了
SOURCES= \
HelloCPL.cpp \
HelloCPL.rc
[/Quote]
解决了就好,还是相互帮忙啊啊
guetcw 2011-08-25
  • 打赏
  • 举报
回复
搞定了,原来建工程的是sources文件默认没有把.rc加到SOURCES=下去,加上去就OK了
SOURCES= \
HelloCPL.cpp \
HelloCPL.rc
guetcw 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 loongembedded 的回复:]
引用 9 楼 wswwxk 的回复:
我按照下面来的,OK
http://blog.csdn.net/nanjianhui/article/details/4336897

我也是按照这个来做的,编译生成的NK烧录到板子后到控制面板下看,没有自己添加的应用,目前还不知道是什么原因,我想确认一下,是否需要重新编译整个工程
[/Quote]
不用编译整个工程,我一般都是build all subproject,它会先编译CPL和应用,然后打包
guetcw 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 aaa_tnt 的回复:]
看下 def文件
EXPORTS
CPlApplet
函数导出了没有。
[/Quote]
导出了的,而且点击控制面板的时候也执行了

[Quote=引用 13 楼 loongembedded 的回复:]
LZ,你好,你提到“调试发现是加载ICON失败,加载字符串资源也失败,ICON和字符串资源我都做好了的就是加载不成功
”,我目前不知如何调试这个cpl程序,还望告知,谢谢。
[/Quote]
直接双击这个CPL可以调出应用程序的
Ei 2011-08-21
  • 打赏
  • 举报
回复
看下 def文件
EXPORTS
CPlApplet
函数导出了没有。
loongembedded 2011-08-21
  • 打赏
  • 举报
回复
我现在遇到的问题应该和你差不多,见我的帖子http://topic.csdn.net/u/20110821/11/a7dc863a-060a-46c7-a4e0-9a917c1b2650.html?15486
loongembedded 2011-08-21
  • 打赏
  • 举报
回复
LZ,你好,你提到“调试发现是加载ICON失败,加载字符串资源也失败,ICON和字符串资源我都做好了的就是加载不成功
”,我目前不知如何调试这个cpl程序,还望告知,谢谢。
loongembedded 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wswwxk 的回复:]
我按照下面来的,OK
http://blog.csdn.net/nanjianhui/article/details/4336897
[/Quote]
我也是按照这个来做的,编译生成的NK烧录到板子后到控制面板下看,没有自己添加的应用,目前还不知道是什么原因,我想确认一下,是否需要重新编译整个工程
当我遇上-你 2011-08-17
  • 打赏
  • 举报
回复
WinCE6.0
guetcw 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 aaa_tnt 的回复:]
可能不是这里。。前面那2个case,CPL_INIT 和 CPL_GETCOUNT 做了什么
[/Quote]
这里什么都没做,代码和MSDN的例子一样,而且我加载系统图标也一样不成功

case CPL_INIT:
// Perform global initializations, especially memory
// allocations, here.
// Return 1 for success or 0 for failure.
// Control Panel does not load if failure is returned.
return 1;

case CPL_GETCOUNT:
// The number of actions supported by this Control
// Panel application.
return 1;



[Quote=引用 9 楼 wswwxk 的回复:]
我按照下面来的,OK
http://blog.csdn.net/nanjianhui/article/details/4336897
[/Quote]
你的是CE6.0还是5.0
当我遇上-你 2011-08-16
  • 打赏
  • 举报
回复
帮顶,我怎么没遇到过呢...
当我遇上-你 2011-08-16
  • 打赏
  • 举报
回复
我按照下面来的,OK
http://blog.csdn.net/nanjianhui/article/details/4336897
Ei 2011-08-16
  • 打赏
  • 举报
回复
可能不是这里。。前面那2个case,CPL_INIT 和 CPL_GETCOUNT 做了什么
suntion 2011-08-16
  • 打赏
  • 举报
回复
以前看过一下,mark 日后有用....
guetcw 2011-08-16
  • 打赏
  • 举报
回复
_tcscpy(lpNewCplInfo->szName, _T("test")); 也不行
ico用自己画的也不行,用HelloWorld.exe的也不行(VS2005自动创建的)
而且就算ico有问题,那字符串资源应该没问题啊
是不是我的资源做的不对,按照MSDN那个步骤做的呀,吐血啊,有木有。。。。
Ei 2011-08-16
  • 打赏
  • 举报
回复
ico不用24bit的,会出现各种图标花屏。。。。。不过我是wince5.0
Ei 2011-08-16
  • 打赏
  • 举报
回复
_tcscpy(lpNewCplInfo->szName, _T("test")); 这个成员 指定一个试试。。
还有那个ICO 一定得用24bit的。。。我之前它也被搞得吐血了。。。。
加载更多回复(2)

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧