C++\CLI下,用winform制作对话框,对话框中有imageList,当imageList中添加了图片后,编译可以通过但是窗体一加载就会崩溃,如果imageList不添加图片就不会崩溃。查阅了相关帖子后判断应该是现有mke文件没有将.resx资源文件编译进去的原因。请问此时mke文件要如何修改?
补充:在这个帖子中符老师提到要在mke中加入三行代码https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/190733/c-cli-winform-resx/562748#562748
ASSEMBLY_RESX_FILE_TO_BUILD = $(baseDir)SmallForm.resx ASSEMBLY_RES_TO_ADD = SmallForm %include assemblyResxAppend.mki
但是不知道要写在mke文件的哪个位置,我试了下编译能过但是运行会出错
放在mke文件最后面就行,窗体是否有命名空间?如果有这需要按照以下格式书写
ASSEMBLY_RES_TO_ADD =命名空间.Form
---------------------------------------------------------------
中国市政工程西北设计研究院有限公司武汉分院
按您的方法修改后,编译时会显示“读入1资源”以及“正在写入资源文件...完成”,但是运行时仍然会崩溃
调试一下看看是到哪一行出错了。
this->imageList1->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^>(resources->GetObject(L"imageList1.ImageStream")));
执行这一行的时候出错了,编译时能看到如下字样
补充,在MyTestForm.resx文件中可以找到名为“imageList1.ImageStream”的内容