Tag: winmain

未定义引用`WinMain @ 16’colle2.exe:错误:ld返回1退出状态

我使用eclipse CDT测试Intel指令,下面是我的程序: #define cpuid(func,ax,bx,cx,dx)\ __asm__ __volatile__ (“cpuid”:\ “=a” (ax), “=b” (bx), “=c” (cx), “=d” (dx) : “a” (func)); int Check_CPU_support_AES() { unsigned int a,b,c,d; cpuid(1, a,b,c,d); return (c & 0x2000000); } 当我编译上面的代码时,我得到链接错误: Info: Internal Builder is used for build gcc -O0 -g3 -Wall -c -fmessage-length=0 -o “src\\Intel.o” “..\\src\\Intel.c” gcc -o Intel.exe “src\\Intel.o” c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference […]

如何在不使用WinMain的情况下编写Windows应用程序?

用C / C ++编写的Windows GUI应用程序将’WinMain’作为入口点(而不是’main’)。 我对此的理解是编译器生成一个’main’函数,由C Runtime调用。 这个’main’函数为GUI设置必要的环境并调用’WinMain’(指定实例句柄等)。 简而言之,我认为控制台和GUI应用程序的启动方式有以下不同之处: 控制台应用程序:C运行时 – >’主’function(手动编码) GUI应用程序:C运行时 – >’main’函数(编译生成) – >’WinMain’函数(手工编码) 我想validation这种理解,并找出如何只使用’main’函数手动编写Windows GUI(即无需编写’WinMain’)。

__in __out __in_opt __allowed()的目的是什么,它们如何工作? 我应该在自己的代码中使用类似的结构吗?

其中一些预处理器定义位于WinMain函数和其他Windows库函数中。 他们的目的是什么? 他们是如何工作的? 将它们写入您的实现或函数调用是一种好习惯吗? 我最初的研究表明,它们只是设置为: #define __in #define __out #define __in_opt 意味着它们在预处理器传递中没有被替换。 它们只是一种文档方法,没有任何function吗? 如果是这样,我可以看到像这样记录代码的优势。 像doxygen这样的东西你需要写出两次参数名称。 因此,理论上这有助于减少重复,并保持一致性…… 我没有关于__allowed()应该如何工作的理论。