背景:
codeblocks中的wxSmith用来创建wxWidgets界面框架是有其方便性的,用它的资源编辑器设计界面,省去了手工编写代码的麻烦,而且实现了所见即所得。但是codeblocks中的代码编辑功能实在太弱,习惯了使用vc6.0+vissualAssitX的编辑环境,所以想出了将codeblocks和vc6.0搭配起来使用。
1.首先用codeblocks创建wxWidgets应用程序框架,然后用vc创建一个空的win32 application.将codeblocks生成的文件,包括源文件,头文件和资源文件resource.rc加入到vc6.0中的相应文件组中。
2.将vc的编译选项设置为/nologo /MTd /W3 /Gm /GR /Zi /Od /I "$(WXWIN)\include" /I "$(wxwin\lib\vc_lib\mswud" /FI"wx_pch.h" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "_UNICODE" /D "_WINDOWS" /Fp"Debug/AutoMaintainSystem.pch"
/Yc"wx_pch.h" /Fo"Debug/" /Fd"Debug/" /FD /EHsc /c (automaintainsystem为工程文件名,本工程中使用预处理文件,如果不加
入/FI"wx_pch.h",则编译文件时会出现wxWidgets中的类未定义的错误,/Yc"wx_pch.h"使编译器使用wx_pch.h预编译出的
AutoMaintainSystem.pch。)
3.将vc的连接选项设置为kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib
ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib wxmsw29ud.lib wxpngd.lib wxjpegd.lib
wxtiffd.lib wxzlibd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/AutoMaintainSystem.pdb" /debug
/machine:I386 /out:"Debug/AutoMaintainSystem.exe" /pdbtype:con /libpath:"$(WXWIN)\lib\vc_lib" 。
4.将vc的Resource选项设置为/l 0x804 /fo"Debug/resource.res" /i "$(WXWIN)\lib\vc_lib\mswud" /i "$(WXWIN)\include"
5.当使用codeblocks修改界面后,保存,然后切换到vc6.0,此时确认工程已修改的提示,用vc6.0编译连接工程文件。
遇到的问题及其解决:
同样的工程文件用codeblocks编译连接,应用程序运行正常。然而用vc6.0编译连接的应用程序,其工具栏明显的显示不正常,而且
界面的显示效果同codeblocks生成的比较起来,明显不好看。查找了很长时间原因,最终发现是当时资源文件resource.rc没有加入
到vc6.0中的resource fiels中,导致界面显示不正常。
使用codeblocks中的wxSmith有些地方还有bug,而且控件没有dialogblocks多,dialogblocks还没有深入研究,下一步计划将
dialogblocks和vc6.0结合起来使用。