晕倒,lz明明说了“s3c6410_iic.dll 文件可以被加载,也生成了IIC0设备,”
很明显是DEBUGMSG没起作用,lz把DEBUGMSG define成RETAILMSG了,也就是RETAILMSG没起作用。
所以应该是lz设置了WINCESHIP=1,RETAILMSG在WINCESHIP=1时编译后相当于空语句
如果不管在怎样的配置下都想输出,可以用NKDbgPrintfW。
RETAILMSG在非ship build里就是调用NKDbgPrintfW, 在ship build里是空语句
如果编译OS时设置了环境变量WINCESHIP=1,就表示这是ship build
CE6有3种编译配置:
1. Debug build,当环境变量WINCEDEBUG=debug时编译出来的就是debug build
Debug build的特点是:没有优化, DEBUGMSG and asserts有效
2. Retail build,当环境变量WINCEDEBUG=retail时编译出来的就是retail build
Retail build的特点是:有优化, DEBUGMSG and asserts无效,但RETAILMSG有效
3. Ship build, 当环境变量WINCEDEBUG=retail并且WINCESHIP=1时编译出来的就是ship build
Ship build的特点是:有优化, DEBUGMSG, asserts, RETAILMSG都无效
在PB的Solution Configuration里选择Debug或者Retail就表示编译出来的是debug build或者retail build。在PB的Solution Properties里Build Options->Enable ship build后编译出来的就是ship build。
一般产品开发完成后,要拿出去卖时就用ship build |