2013-03-31 42 views
3

我部署用的Qt的OpenGL +應用程序,用Visual Studio 2008的Windows 7的應用程序部署 - 無音頻,在客戶端無圖像

在客戶端機器,沒有音頻播放和沒有圖像顯示在應用程序中。我保持它非常簡單。對於圖像和音頻文件沒有不同的文件夾,一切都在附近的.exe坐在我的代碼,我曾訪問過這些文件,如

QPixmap pixmap("closeButton.jpg"); 

現在有趣的是它的工作原理「完美」我的電腦上。所以我沒有得到問題的地方

我試圖從/釋放到/ myProject所有的源文件和圖像和音頻文件存在的輸出目錄。同樣,它在我的電腦上運行,但不在客戶端。

由於我在我的機器上無法生成類似的問題,因此很難解決問題。有沒有一個好的解決方案?

+0

我還沒有嘗試.qrc文件。這似乎是我可以嘗試的最後一件事情;但是這個設置有什麼問題? – Adorn

回答

3

好的。問題現在解決了。我實際上丟失了兩個dll,每個dll都是從

Qt \ Version \ Plugins \目錄下的音頻和圖像。依賴項步行者不顯示插件依賴關係。

同時參考第一個回答的評論,Qt資源實際上是打包在二進制文件中。 See here

感謝您的幫助球員。

0

您是否已驗證您的圖像和音頻文件是否包含在安裝程序包中?如果您訪問這些文件,您是否使用了正確的路徑?

+0

是的。那些也在客戶端機器附近的EXE附近。它們狀態良好也意味着音頻文件可以獨立播放。我安裝在我的電腦上的同一個軟件包,那麼它的工作原理! – Adorn

+0

這個答案不應該是一個評論嗎? – karlphillip

1

您確實需要將音頻/圖像和任何其他外部文件作爲資源添加到項目中。

例如,我寫了一個代碼,將圖像加載到QImage小部件中。我的資源文件的屬性是:

enter image description here

上的代碼後來我指的是文件:

QImage tmp(":/mario-block.png"); 

交易的另一個重要部分是覈實,如果該資源已加載正確,所以在這種情況下,我還添加了幾行:

if (tmp.isNull()) 
{ 
    std::cout << "!!! Failed to load image #1" << std::endl; 
    return; 
} 
+0

可能是我的基本概念不清楚,因爲這是我的第一次部署;但我並不確信爲什麼要將它們添加到項目中?他們在同一目錄和路徑上也不錯.. – Adorn

+1

已更新。檢查答案的第二部分,它說明了安全編碼的重要性,並始終檢查你所做的工作是否成功。如果您的代碼無法打開文件,通常由於以下兩個原因中的一個:1)文件的PATH錯誤; 2)您沒有正確的文件系統權限來執行此操作。 – karlphillip

+0

好吧..現在添加.qrc文件,由於時區差異,會在明天與客戶端進行覈對。感謝解釋:) – Adorn

相關問題