c++ 如何解释WinMain上的文档?

lvmkulzt  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(99)

请看WinMain docs

int __clrcall WinMain(
  [in] HINSTANCE hInstance,
  [in] HINSTANCE hPrevInstance,
  [in] LPSTR     lpCmdLine,
  [in] int       nShowCmd
);

我应该如何解释这个?in属性是可选的吗?用方括号表示?如果是,它看起来像什么?
我尝试使用以下标志在Visual Studio中编译一个简单的应用程序:
x一个一个一个一个x一个一个二个x
但它不会编译并给出以下错误。

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)
1l5u6lss

1l5u6lss1#

[in]修饰只是用于文档编制,您可以忽略它们,只像WinMain docs示例那样实现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);
}

相关问题