有答案了 BUG: ATL Service EXE Doesn't Build in Release Build Last reviewed: June 16, 1997 Article ID: Q167946 The information in this article applies to: Microsoft Visual C++, 32-bit Editions, version 5.0 SYMPTOMS If you try to build a release mode of an ATL service EXE created with ATL COM AppWizard, you get the following the error message: "error LNK2001: unresolved external symbol _main" CAUSE Builds in release mode automatically include the preprocessor directive _ATL_MIN_CRT, while the default ATL service code generated by the wizard requires the CRT library. RESOLUTION Remove _ATL_MIN_CRT from the list of preprocessor defines to allow CRT startup code to be included. On the Project menu, click Settings. In the Settings For: drop-down list, choose Multiple Configurations. In the "Select project configuration(s) to modify" dialog box that appears, select the check boxes for all Release versions, and then click OK. Click the C/C++ tab in the Project Settings dialog box, and then choose the General category. Remove _ATL_MIN_CRT from the Preprocessor definitions edit box. Alternatively, you can remove calls to the CRT functions within the generated CServiceModule::LogEvent function. STATUS Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION
你因该有启发
不管怎么说,先谢谢你:))
BUG: ATL Service EXE Doesn't Build in Release Build
Last reviewed: June 16, 1997
Article ID: Q167946
The information in this article applies to:
Microsoft Visual C++, 32-bit Editions, version 5.0
SYMPTOMS
If you try to build a release mode of an ATL service EXE created with ATL COM AppWizard, you get the following the error message:
"error LNK2001: unresolved external symbol _main"
CAUSE
Builds in release mode automatically include the preprocessor directive _ATL_MIN_CRT, while the default ATL service code generated by the wizard requires the CRT library. RESOLUTION
Remove _ATL_MIN_CRT from the list of preprocessor defines to allow CRT startup code to be included.
On the Project menu, click Settings. In the Settings For: drop-down list, choose Multiple Configurations. In the "Select project configuration(s) to modify" dialog box that appears, select the check boxes for all Release versions, and then click OK. Click the C/C++ tab in the Project Settings dialog box, and then choose the General category. Remove _ATL_MIN_CRT from the Preprocessor definitions edit box. Alternatively, you can remove calls to the CRT functions within the generated CServiceModule::LogEvent function.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION