相关疑难解决方法(0)

"APIENTRY _tWinMain"和"WINAPI WinMain"的区别

这两个功能有什么区别?:

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi winmain

18
推荐指数
2
解决办法
3万
查看次数

main和mainCRTStartup有什么区别?

我试图理解如何用不同的入口点代替WinMainMicrosoft工具链中的工作.

我已经发现了这个问题并且它非常有用,但最后一个细节却在唠叨我.

我第一次Linker>Advanced>Entry Point在Visual Studio中更改了选项时,我将其设置为main错误,我的程序编译并运行正常.我后来意识到并重建了程序设置为mainCRTStartup,如链接问题中接受的答案所示,并没有发现任何不同.

所以,我的问题是:是否有任何差异之间的所有mainmainCRTStartup,如果是这样,有什么区别?

winapi

9
推荐指数
2
解决办法
1万
查看次数

什么相当于cmake中gcc的-mwindows选项?

我跟着tuto:

http://zetcode.com/tutorials/gtktutorial/firstprograms/

它工作,但每次我双击可执行文件,有一个控制台,我不希望它在那里.

我如何摆脱那个控制台?

我试过这个:

add_executable(Cmd WIN32 cmd.c)
Run Code Online (Sandbox Code Playgroud)

但得到了这个致命的错误:

MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
Cmd.exe : fatal error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)

使用gcc直接工作:

gcc -o Cmd cmd.c -mwindows ..
Run Code Online (Sandbox Code Playgroud)

我猜这与入门函数有关:int main( int argc, char *argv[])但为什么gcc有效?

我怎样才能使用它cmake

UPDATE

为方便起见,我这里粘贴源代码:

#include <gtk/gtk.h>

int main( int argc, char *argv[])
{
  GtkWidget *window;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_show(window);

  gtk_main();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

UPDATE2

为什么gcc -mwindows有效但add_executable(Cmd WIN32 cmd.c)不是?

也许这不是 …

c windows gtk cmake

8
推荐指数
2
解决办法
4357
查看次数

创建没有 WinMain 函数的 Win32 窗口

我想在 Windows 上为我编写一个用于 OpenGL 的小窗口框架。我知道有很多好的窗口库,但我喜欢自己做。但是我有一个小问题,如果我想用 Win32 API 创建一个窗口,我需要像“hInstance”这样的参数......我如何在 Window.class 中获得这个需要的变量?其他 Window 库是如何做到的?

c++ winapi window

6
推荐指数
1
解决办法
4699
查看次数

我设置什么选项来使用 main() 而不是 wmain()

我有一个wmain()用作入口点的工作 Visual Studio 项目。我想main()改用。

如果我只是将函数签名更改为int main(),我会得到:

错误 LNK2019:函数“void __cdecl mainCRTStartupHelper(struct HINSTANCE__ *,unsigned short const *)”中引用了未解析的外部符号 _wmain

我需要更改什么选项才能使链接成功?

linker-errors visual-c++

5
推荐指数
1
解决办法
9731
查看次数

将WinMain(或wWinMain)参数传递给普通main

如果您尝试将构建类型更改Console (/SUBSYSTEM:CONSOLE)Windows (/SUBSYSTEM:WINDOWS),则会收到错误,抱怨输入点WinMain丢失:

MSVCRT.lib(crtexew.obj):错误LNK2001:未解析的外部符号_WinMain @ 16

我认为解决这个问题的最佳方法是int main(int, char**)WinMain以下方面调用您的法线:

#ifdef _WINDOWS_
INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    PSTR lpCmdLine, INT nCmdShow)
{
    return main(0, NULL);
}
#endif
Run Code Online (Sandbox Code Playgroud)

问题是ImageMagick正在使用控制台参数(我计划将来也使用它们):

分段故障imagemagick init

所以过去NULL并且0可能不是一个好主意.如何将WinMain参数转换为mainarugments?

c++ winapi

4
推荐指数
1
解决办法
2571
查看次数

如何在C++中更改窗口大小?

嗨我必须用C++运行程序,我想确保程序执行时,它以特定的大小/尺寸打开控制台,以便我的程序中的显示是正确的.我需要帮助,因为我不知道该怎么做.我正在使用Dev C++ 5.42(Orwell).我试过用

#include<iostream> 
#include<windows.h> 

using namespace std; 

SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); 

int main(){ 
    cout<<"Hello World"; 
}
Run Code Online (Sandbox Code Playgroud)

并得到一个错误

[Error] expected constructor, destructor, or type conversion before '(' token
Run Code Online (Sandbox Code Playgroud)

我是初学者,因此我对这些事情知之甚少.

c++ windows user-interface winapi

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

winapi ×5

c++ ×4

windows ×3

c ×1

cmake ×1

gtk ×1

linker-errors ×1

user-interface ×1

visual-c++ ×1

window ×1

winmain ×1