1. 程式人生 > >C#和C/C++編譯生成的exe檔案的區別

C#和C/C++編譯生成的exe檔案的區別

C#編譯生成的 exe檔案,是一個由中間語言(IL)、元資料(Metadata)和一個額外的被編譯器新增的目標平臺的標準可執行檔案頭(比如Win32平臺就是加了一個標準Win32可執行檔案頭)組成的PE(portable executable,可移植執行體)檔案,需要由CLR執行。C、C++編譯生成的exe檔案是傳統的二進位制可執行檔案,可以由硬體直接執行。雖然他們有著相同的副檔名,但是卻有很大的差別。

相關推薦

C#使用命令列模式編譯生成dll檔案或者exe檔案

若要生成檔案 MathLibrary.DLL,請使用以下命令列編譯檔案 Add.cs 和檔案 Mult.cs: csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs /target:library

VS2010靜態編譯生成.exe可執行檔案,使c++程式脫離VS環境執行

VS2010靜態編譯生成的.exe可執行檔案,可以免安裝在其他電腦直接執行 靜態編譯:就是在編譯可執行檔案的時候,將可執行檔案需要呼叫的對應動態連結庫(.so)中的部分提取出來,連結到可執行檔案

C++生成exe檔案

// Test01.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {  

C++ Markup.cpp的 CMarkup生成XML檔案

將一個結構體或陣列容器的內容生成到XML檔案中。 結構體定義: struct data /*定義結構體*/ {  int year,month,day; } ;struct stu /*定義結構體*/ {     char n

c++中的預編譯標頭檔案問題

環境:VS2008 語言:C++      下午出了一個非常可惡的問題,我的一個基於MFC 對話方塊的程式因為預編譯標頭檔案stdafx.h的原因始終無法編譯通過。 由於程式整體是需要預編譯標頭檔案的。因此工程內所有cpp檔案通通都包括了#include stdafx.h。      我自己寫的檔案放在工程

hao—C++Java從編譯到執行的過程區別

以下內容純屬臆測,沒有科學依據,也不想(沒空)翻看權威資料。 一、C++編譯和執行過程 1、C++每個編譯單元整體上看都是各種宣告和定義     C++編譯單元就是指每個cpp檔案,整體上看(全域性的東西,函式內部不算,類定義內部不算)無非就是變數(包括類的例項也算變數

.NET、C#ASP.NET三才之間的區別(轉)

編程 tail 基於web 發現 我認 ava 微軟 框架 framwork 經常有同學會在.NET、C#和ASP.NET這三者之間區別不清楚,到底它們之間有什麽聯系呢?在這裏我給大家歸納如下: 1、.NET是一個平臺,一個抽象的平臺的概念。

DotNET、C#ASP.NET三才之間的區別

關系 .net ren net all pos details div dot Reference 1. DotNET、C#和ASP.NET三才之間的區別 2. ASP.NET、.NET和C#的關系是怎樣的?DotNET、C#和ASP.NET三才之間的區別

從彙編底層的角度看cc語言

從彙編和底層的角度看c和類c語言       寫這篇文章的目的是對近期底層學習的總結,也算是勉勵自己吧,畢竟是光靠興趣苦逼自學不是自己專業的東西要承受很多壓力。 https://blog.csdn.net/jggyyhh/article/details

C++cuda C的結合發揮各自的優點

本次實驗主要是實現vector複製到cuda中,一般教材上都是使用指標,很是繁瑣,而且STL優秀的演算法不太容易使用。為了實現C++ STL的優秀演算法和cuda的平行計算能力,二設計的本次實驗。 一下程式碼僅供提供思路。  #include <cuda_runtime.h&

VS2010靜態編譯生成.exe可執行檔案

VS2010靜態編譯生成的.exe可執行檔案,可以免安裝在其他電腦直接執行   靜態編譯:就是在編譯可執行檔案的時候,將可執行檔案需要呼叫的對應動態連結庫(.so)中的部分提取出來,連結到可執行檔案中去,使可執行檔案在執行的時候不依賴動態連結庫。     編譯方式: 第1種:

Microsoft Visual C Borland C Builder 之比較

                         來源:百度(最原始的地方未知,我大概整理了一下格式)。        本文就試圖從技術水平、易用性、穩定性、發展前景等對Visual   C++和C++Builder(Delphi)這兩個重量級開發工具進行比較分析。              由於Delphi

.NET、C#ASP.NET三才之間的區別

經常有同學會在.NET、C#和ASP.NET這三者之間區別不清楚,到底它們之間有什麼聯絡呢?在這裡我給大家歸納如下:       1、.NET是一個平臺,一個抽象的平臺的概念。            .NET平臺其本身實現的方式其實還是庫,抽象層面上來看是一個平臺。

linux核心中GNU C標準C區別

今天看了一下午的linux核心程式設計方面的內容,發現linux 核心中GNU C與標準C有一些差別,特記錄如下: linux 系統上可用的C編譯器是GNU C編譯器,它建立在自由軟體基金會的程式設計許可證的基礎上,因此可以自由釋出。GNU C對標準C進行進一步擴充套件,以增強標準C的功能。下面我們對GNU

Matlab 2017b編譯生成exe或DLL檔案後無法執行的問題及其解決方法

問題描述最近嘗試用Matlab 2017b和Qt 5.9混合程式設計。用Matlab編寫了一個很簡單的m檔案,配置使用Visual C++ 2015 編譯器,用deploytool和對m檔案進行編譯,編譯後能生成exe檔案。所有的環境變數等設定的也沒有問題,但是執行編譯後的程

char *cchar c[]區別

函式中的下一條指令,程式由該點繼續執行。 堆:一般是在堆的頭部用一個位元組存放堆的大小。堆中的具體內容由程式設計師安排。 2.6存取效率的比較char s1[]="aaaaaaaaaaaaaaa"; char *s2="bbbbbbbbbbbbbbbbb"; aaaaaaaaaaa是在執行時刻賦值的; 而bb

Pyinstaller生成exe檔案

Python版本:Python3.5.2 一、安裝Pyinstaller 1、安裝pywin32 下載安裝檔案:查詢到跟自己適用的python版本及window系統版本匹配的pywin32,下載後安裝  使用pip命令安裝:pip in

【MPC5744P】S32DS編譯生成Hex檔案的方法

S32DS中編譯生成MPC5744P專案時,預設只生成elf檔案,elf檔案包含眾多除錯資訊,因而相較於hex檔案,體積要大得多,而且需要另外開發elf解析模組,不如hex通用。   設定生成Hex的方法如下: 1、專案中右鍵->Properties 2、在

python打包程式生成exe檔案

python安裝PyInstaller 控制檯輸入以下指令,-F可避免生成很多不必要的檔案。 pyinstaller -F part2.py 然後在工程目錄下生成一個dist資料夾,exe檔案在裡面

Python生成.exe檔案(包含下載安裝)

上午都在py2exe這個坑裡面,後面用了pyinstaller跳出來了。 一.首先需要安裝python python下載官網:https://www.python.org/downloads/windows/,我的電腦目前是裝了win64的python3.5,需要說明的是