[英]How to interpret docs on WinMain?
请查看WinMain 文档。
int __clrcall WinMain(
[in] HINSTANCE hInstance,
[in] HINSTANCE hPrevInstance,
[in] LPSTR lpCmdLine,
[in] int nShowCmd
);
我应该如何解释这个? 方括号表示in
属性是可选的吗? 如果是这样,它看起来像什么。
我尝试使用以下标志在 Visual Studio 中编译一个简单的应用程序:
/clr /permissive- /Zc:twoPhase-
#include <Windows.h>
int __clrcall WinMain(
[in] HINSTANCE hInstance,
[in] HINSTANCE hPrevInstance,
[in] LPSTR lpCmdLine,
[in] int nShowCmd
) {
return 0;
}
但它不会编译并给出以下错误。
C2373 WinMain': redefinition; different type modifiers
C2337 'in': attribute not found
E0337 linkage specification is incompatible with previous "WinMain" (declared at line 1033) WinBase.h
E0147 declaration is incompatible with "int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)" (declared at WinBase.h)
[in]
装饰仅用于文档。 您可以忽略它们并像示例WinMain 文档中那样实现WinMain
:
如果为多字节(又名 ANSI)构建:
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR cmdline, int cmdshow)
{
return MessageBoxA(nullptr, "hello, world", "caption", 0);
}
如果为 Unicode 构建:
#include <Windows.h>
int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPWSTR cmdline, int cmdshow)
{
return MessageBoxW(nullptr, L"hello, world", L"caption", 0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.