簡體   English   中英

如何制作不依賴msvc dll的Win32應用程序?

[英]How can I make a win32 app with no dependency on the msvc dll?

我想使用Visual Studio編寫沒有msvc dll依賴性的c ++ win32應用程序。

我嘗試了/NODEFAULTLIB選項,但此后由於沒有庫,即使使用“空”程序,也遇到了無法解決的外部錯誤。 我該如何糾正? 必須鏈接哪些庫?

這是我嘗試使用/NODEFAULTLIB選項進行編譯但失敗的簡單代碼。

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) {

}
#undef UNICODE
#define UNICODE
#include <windows.h>

void startup()
{
    MessageBox( 0, L"Click the OK button, please.", L"Hi!", MB_SETFOREGROUND );
    ExitProcess( 0 );
}
[C:\my\forums\so\279]
> 

[C:\my\forums\so\279]
> 
 Volume in drive C is OS
 Volume Serial Number is 58BC-07CA

 Directory of C:\my\forums\so\279

28.01.2017  21:43    <DIR>          .
28.01.2017  21:43    <DIR>          ..
28.01.2017  21:43               215 minimal.cpp
28.01.2017  21:43             2 560 minimal.exe
28.01.2017  21:43               860 minimal.obj
               3 File(s)          3 635 bytes
               2 Dir(s)  274 278 531 072 bytes free

[C:\my\forums\so\279]
> _

cl是Visual C ++編譯器。 我的默認選項(通過CL環境變量)是/nologo /EHsc /GR /W4 /FI "iso646.h" ,但是我相信只有異常處理選項會影響此處的任何內容(如果有的話)。 鏈接了user32.lib庫,因為我使用了MessageBox函數。


請注意,運行時庫負責處理C ++核心語言基礎結構的某些部分。 這包括名稱空間范圍變量的動態初始化,並且取決於編譯器,它可能包括對異常的某些支持。 在這方面,我不了解有關Visual C ++的詳細信息,但必須非常非常小心:一種操作是在一種工具的基本假設不成立的情況下進行的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM