`

windows程序入口

阅读更多
操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点由连接程序设置,
不同的连接器选择的入口函数也不尽相同。在VC++下,连接器对控制台程序设置的入口函数是 mainCRTStartup,
mainCRTStartup 再调用main 函数;对图形用户界面(GUI)程序设置的入口函数是 WinMainCRTStartup,
WinMainCRTStartup 调用你自己写的 WinMain 函数。具体设置哪个入口点是由连接器的“/subsystem:”
选项确定的,它告诉操作系统如何运行编译生成的.EXE文件。可以指定四种方式:CONSOLE|WINDOWS|NATIVE|POSIX。
如果这个选项参数的值为 WINDOWS,则表示该应用程序运行时不需要控制台,有关连接器参数选项的详细说明请参考 MSDN 库。

以下四种组合,可以实现console和windows模式的混合,可以达到不弹出DOS窗口的效果,
也可以达到在Windows程序中向控制台输出printf信息的目的。
#pragma comment( linker, "/subsystem:windows /entry:WinMainCRTStartup" )
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR      lpCmdLine,
int        nCmdShow)
{
      // ...
}

int main(void)
{
      // ...
}
1,上面的意思就是如果你想弹出Dos窗口的话,就调用
       #pragma comment( linker, "/subsystem:console /entry:mainCRTStartup" )
       #pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )
       这两个其中之一,具体哪个看你源代码的入口是main还是WinMain了。
       如果你不想弹出Dos窗口的话,对exe调用可执行jar文件非常有用,就调用
       #pragma comment( linker, "/subsystem:windows /entry:WinMainCRTStartup" )
       #pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
       这两个其中之一,具体还是看你源代码的入口是main还是WinMain了。
2,exe启动jar文件,模仿eclipse.exe文件
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
#include <stdlib.h>
#include <Windows.h>
int main(){
STARTUPINFO si = { sizeof(si) }; 
PROCESS_INFORMATION pi; 
TCHAR szCommandLine[] = TEXT("javaw -jar TT2012.jar"); 
CreateProcess(NULL, szCommandLine, NULL, NULL, 
FALSE, 0, NULL, NULL, &si, &pi);  
return EXIT_SUCCESS;
}
分享到:
评论

相关推荐

    windows 程序设计中文版

    1.3.1 字符模式 1.3.2 Windows对应程序 1.3.3 头文件 1.3.4 程序入口 1.3.5 MessageBox函数 1.3.6 编译、链接及运行 第2章Unicode简介 2.1 字符集简史 2.1.1 美国标准 2.1.2 美国以外的世界 2.1.3 扩展ASCII 2.1.4 ...

    Windows 程序设计(第5版)(上、下册)--详细书签版

    1.3.4 程序入口点 1.3.5 messagebox 函数 1.3.6 编译、链接和运行 第二章 unicode简介 2.1 字符集简史 . 2.1.1 美国标准 2.1.2 国际方面 2.1.3 扩展ascll 2.1.4 双字书字符集 2.1.5 ...

    MFC Windows程序设计电子书

    《MFC Windows程序设计电子书》是一份涵盖了MFC(Microsoft Foundation Classes)在Windows平台下进行应用程序开发的详细教程。MFC是微软提供的一套C++类库,它基于面向对象编程思想,为开发者提供了构建Windows应用...

    MFC程序的生灭过程

    传统的Windows程序入口点是`WinMain`函数,但在MFC程序中,这个函数被MFC库封装起来了。实际上,MFC会自动处理`WinMain`的调用。`WinMain`函数在`APPMODUL.CPP`中通过`_tWinMain`宏(支持Unicode)间接调用,其主要...

    15天学习C语言Windows程序设计.pdf

    Windows程序设计是C语言学习过程中的一个重要部分,涉及到Windows操作系统下的软件开发。本资料"15天学习C语言Windows程序设计"是一份专注于Windows平台下使用C语言进行程序设计的学习材料。 在Windows平台上,...

    免杀初阶Ch.2 无特征码免杀之修改程序入口点

    在PE(Portable Executable)格式的Windows可执行文件中,程序入口点是一个特殊的地址,指示操作系统在加载程序时应该从哪里开始执行。通常,这个位置包含了恶意软件的初始执行逻辑,而这些逻辑可能会被反病毒软件...

    MFC Windows 程序设计[第二版】,电子书及书中全部源代码

    2. **应用程序框架**:如何使用CWinApp类作为应用程序的入口点,以及如何使用框架管理应用程序的生命周期。 3. **文档/视图架构**:这是MFC的核心设计模式,用于处理数据和用户界面的分离。CDocument、CView、...

    Windows编程基础--窗体篇.

    - **WinMain函数详解**:深入讲解了作为Windows程序入口点的`WinMain`函数的具体作用及其参数的意义。 - **窗口类注册与创建**:详细介绍了如何通过`WNDCLASS`结构体定义窗口类,并通过`RegisterClass`函数进行注册...

    windows程序的基础扫盲

    Windows程序的基础扫盲主要涉及的是Windows图形用户界面(GUI)编程,尤其是如何使用API函数创建GUI程序。在Windows编程中,GUI程序的核心部分包括窗口类的登记、主窗口的创建以及消息循环的实现。下面将详细解释...

    WPF应用程序的入口

    Windows Presentation Foundation(WPF)是一种用于构建Windows客户端应用程序的技术框架,它提供了丰富的功能来创建各种类型的用户界面。WPF应用程序的入口是理解和开发此类应用程序的关键部分之一。 #### App....

    MFC windows 程序设计

    MFC Windows程序设计是一门深度探讨如何利用MFC进行高效编程的技术领域,这门学科涵盖了Windows编程的基本原理、MFC框架的结构以及如何通过MFC实现各种窗口、控件和对话框。 在MFC中,主要的知识点包括: 1. **MFC...

    MFC WINDOWS 程序设计

    《MFC Windows程序设计》是一本深入探讨Microsoft Foundation Classes (MFC)库和Windows应用程序开发的专业书籍。MFC是微软提供的一套C++类库,它封装了Windows API,使得用C++编写Windows应用程序变得更加方便和...

    Windows程序设计笔记(1,2,3)

    《Windows程序设计》是Charles Petzold的经典之作,尽管出版于1999年,但至今仍然是新手学习Windows平台下C语言编程的首选教材。这本书深入浅出地讲解了如何利用Windows API函数来构建应用程序,尤其对于理解Windows...

    MFC Windows程序设计(第二版)(中文版)源代码

    《MFC Windows程序设计(第二版)(中文版)》是一本深入探讨Microsoft Foundation Classes (MFC)库的书籍,用于构建Windows应用程序。MFC是微软为C++开发者提供的一套类库,它封装了Windows API,使得开发人员可以更加...

    MFC WINDOWS应用程序设计(第3版)_任哲_vs2017源码.rar

    MFC将Windows程序设计的各种概念和对象抽象成了一系列的C++类,如CWinApp、CWnd、CFrameWnd等,使得开发者可以使用面向对象的方式来设计和实现应用程序。 2. **CWinApp类**:MFC程序的核心是CWinApp类,它是每个MFC...

    5种常用程序入口特征

    根据提供的信息,我们可以详细探讨五种常用编程语言的程序入口特征。这五种语言包括:C++(使用Microsoft Visual C++ 6.0)、Delphi(使用Borland Delphi 6.0-7.0)、VB(使用Microsoft Visual Basic 5.0/6.0)、BC+...

    windows程序设计第二版配书代码(王艳萍、张静)

    《Windows程序设计》第二版是由王艳萍和张静合著的一本经典教材,主要针对想要深入理解Windows操作系统内部机制并进行系统级编程的读者。这本书涵盖了Windows API的使用、进程与线程管理、内存管理、文件系统、窗口...

    windows程序设计训练总结

    以上介绍了Windows程序设计中非常基础但重要的两个方面:程序入口函数`WinMain`和窗口类别的注册`RegisterClass`。通过这些基础知识点的学习,初学者可以进一步探索Windows编程的更多细节和技术。

    MFC windows程序设计

    **MFC Windows程序设计** MFC,全称Microsoft Foundation Classes,是微软提供的一套C++类库,用于简化Windows应用程序的开发。它基于面向对象的编程思想,将Windows API封装成易于使用的C++类,使得开发者能更高效...

Global site tag (gtag.js) - Google Analytics