簡體   English   中英

我需要什么C ++程序包才能運行程序?

[英]What C++ packages do i need to run a program?

我創建了一個使用C ++ dll的C#應用​​程序,並嘗試創建一個安裝包,該安裝包將使其在具有VS或不具有VS的其他計算機上運行,​​問題是我不知道我需要讓什么C ++庫運行做這個。 當我僅在空白虛擬機上運行該應用程序時,它會顯示“ xxxx遇到問題,需要關閉”。 如果我去下載Visual Studio 2008 Express版本並將其安裝在計算機上,則我的程序可以正常運行。 問題是在機器上下載的是85-185mb的下載,最大為1.1gb的是335mb,正在使用它的程序只有33kb。 那里的開銷很大...如果我只安裝從msdn站點可再發行的C ++,它將占用4mb,但是它不會讓我運行我的程序。

我需要什么C ++軟件包才能使此程序在空白計算機上運行?

這個問題很難回答。 如果您擁有c ++ dll的源代碼,則除非該人員使用了大量com或加載庫調用,否則您應該能夠查看其依賴關系。 我用來獲取c ++火山噴發信息的最佳工具之一是depends.exe 要檢查其代碼是否是您要使用的調試版本是否與依賴於我認為不在可再發行版本中的調試dll相關的一件事。

caleb,我建議您使用一個名為Dependency Walker的程序。 它將顯示您具有的所有dll依賴項。 我敢肯定,其中有很多Windows版本,但這就是我已經使用了一段時間了,我喜歡它。 因此,您通過從MS網站下載可再發行軟件包進行了正確的操作,但您的應用程序可能依賴於某些其他庫。 很久以前,當我嘗試使用Visual Studio來構建安裝程序時,我記得這是在安裝程序中包含可重新分發程序包或使用並行安裝的一種方法-這取決於您的Visual Studio版本的許可協議是否允許您執行那還是不。 另外,您可以包括安裝程序中所有的dll依賴項。

希望能有所幫助

您需要的C ++運行時dll是與編譯器一起作為可再發行軟件包提供的dll,而正是這個軟件包! 其他Redist軟件包將不需要工作,因為嵌入在可執行文件中的清單需要精確的版本(由並排匯編目錄C:\\ Windows \\ SxS中的二進制文件的哈希值檢查)

因此,您可以正確使用可再發行組件,但是您需要的是隨編譯器一起安裝的組件,而不是互聯網上的最佳猜測。 確切的版本可以在清單文件(XML)中查看

暫無
暫無

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

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