// #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN IDD_MYDIALOG, DIALOG BEGIN LEFTMARGIN, 8 RIGHTMARGIN, 502 TOPMARGIN, 8 BOTTOMMARGIN, 273 END END #endif // APSTUDIO_INVOKED // APSTUDIO_INVOKED是在当App Studio 处理.rc文件时定义的,而不是在通常资源编译器编译它的时候定义的。资源编译器根本就不会明白“GUIDELINES”的意思;只有App Studio才会明白。为什么#include的问题会牵扯到“GUIDELINES”呢?因为这个问题的答案依赖于APSTUDIO_INVOKED。你要做的全部工作只是将要包含的文件一下面的形式#include就可以了:
//
#ifndef APSTUDIO_INVOKED // if NOT defined
#include "MyOtherHeader.h"
#endif
//
App Studio在运行时,因为定义了APSTUDIO_INVOKED,所以它忽略掉你的#include。但当没有定义APSTUDIO_INVOKED时,RC编译器就会编译你#include的文件。此外——也是最重要的一点——App Studio在它存储你的.rc文件时会保护你的#include语句。它识别: “这里的这个#ifndef块不是我的,所以我想最好还是不删除它...”
如果你的好奇心想知道为什么App Studio总是要删除开始那样添加的代码——那是另外一个故事! 我们下次再讲吧。
本文地址:http://com.8s8s.com/it/it3700.htm