本主题介绍如何通过设置项目的My
条件编译常量来控制启用哪些_MYTYPE
对象。 Visual Studio 集成开发环境(IDE)使 _MYTYPE
项目的条件编译常量与项目的类型保持同步。
预定义的 _MYTYPE 值
必须使用 /define
编译器选项设置 _MYTYPE
条件编译常量。 为 _MYTYPE
常量指定自己的值时,必须将字符串值括在反斜杠/引号 (\“) 序列中。 例如,可以使用:
/define:_MYTYPE=\"WindowsForms\"
此表显示了多个项目类型设置的_MYTYPE
条件编译常量。
项目类型 | _MYTYPE 值 |
---|---|
类库 | “Windows” |
控制台应用程序 | “Console” |
网络 | 网络 |
Web 控件库 | “WebControl” |
Windows 应用程序 | “WindowsForms” |
Windows 应用程序(从自定义 Sub Main 开始时) |
“WindowsFormsWithCustomSubMain” |
Windows 控件库 | “Windows” |
Windows 服务 | “Console” |
空 | “空” |
注释
不管 Option Compare
语句如何设置,所有条件编译字符串比较均区分大小写。
从属 _MY 编译常量
条件编译常量 _MYTYPE
反过来控制若干其他编译常量 _MY
的值:
_MYTYPE | _MYAPPLICATIONTYPE | _MYCOMPUTERTYPE | _MYFORMS | _MYUSERTYPE | _MYWEBSERVICES |
---|---|---|---|---|---|
“Console” | “Console” | “Windows” | 未定义 | “Windows” | 真 |
“Custom” | 未定义 | 未定义 | 未定义 | 未定义 | 未定义 |
“空” | 未定义 | 未定义 | 未定义 | 未定义 | 未定义 |
网络 | 未定义 | 网络 | 假 | 网络 | 假 |
“WebControl” | 未定义 | 网络 | 假 | 网络 | 真 |
“Windows”或“” | “Windows” | “Windows” | 未定义 | “Windows” | 真 |
“WindowsForms” | “WindowsForms” | “Windows” | 真 | “Windows” | 真 |
“WindowsFormsWithCustomSubMain” | “Console” | “Windows” | 真 | “Windows” | 真 |
默认情况下,未定义的条件编译常量解析为 FALSE
。 编译项目以替代默认行为时,可以为未定义的常量指定值。
注释
当设置为“Custom”时 _MYTYPE
,项目包含 My
命名空间,但它不包含任何对象。 但是,设置为 _MYTYPE
“Empty”可防止编译器添加 My
命名空间及其对象。
下表描述了编译常量预定义值 _MY
的影响。
恒定 | 含义 |
---|---|
_MYAPPLICATIONTYPE |
如果常量为“控制台”、“Windows”或“WindowsForms”,则启用 My.Application :- “控制台”版本派生自 ConsoleApplicationBase。 成员数少于“Windows”版本。 - “Windows”版本派生自 ApplicationBase.,成员数少于“WindowsForms”版本。 - “WindowsForms”版本的 My.Application 派生自WindowsFormsApplicationBase。
TARGET 如果常量定义为“winexe”,则类包括一个Sub Main 方法。 |
_MYCOMPUTERTYPE |
如果常量为“Web”或“Windows”,则启用 My.Computer :- “Web”版本派生自 ServerComputer,成员数少于“Windows”版本。 - My.Computer 的“Windows”版本派生自 Computer。 |
_MYFORMS |
如果常量为 My.Forms ,则启用 TRUE 。 |
_MYUSERTYPE |
如果常量为“Web”或“Windows”,则启用 My.User :- “Web”版本 My.User 与当前 HTTP 请求的用户标识相关联。- My.User 的“Windows”版本与线程的当前主体相关联。 |
_MYWEBSERVICES |
如果常量为 My.WebServices ,则启用 TRUE 。 |
_MYTYPE |
启用 My.Log 、My.Request 和 My.Response ,如果常量为“Web”。 |