2011-10-23 80 views
0

我有一個VSSTX/MSVC編譯好的VST插件。我正在嘗試爲偏好該環境的用戶製作Codeblocks/MinGW項目。codeblocks/mingw&windres問題使用png資源構建.dll(VST插件)

當我建立與代碼塊的dll它工作在一個VST宿主,具有圖形用戶界面,直到我開始嘗試包括資源(.png文件)

我包括代碼塊項目.rc文件。我的resource.h中的資源路徑沒有空格。

如果我嘗試複製內置的.dll文件,操作系統將其鎖定。這幾乎就像windres沒有成功地編譯資源並保留對該文件的句柄 - 雖然.dll的大小看起來像資源在那裏。如果我嘗試通過GDB在vst主機上運行dll,它不會觸及任何斷點......大概主機無法加載.dll。

這裏的代碼塊CBP編譯器設置...

<Target title="Release Win32"> 
<Option output="build-win-cb\IPlugEffect" prefix_auto="1" extension_auto="1" /> 
<Option working_dir="build-win-cb\" /> 
<Option object_output="build-win-cb\Release" /> 
<Option type="3" /> 
<Option compiler="gcc" /> 
<Option parameters="IPlugEffect.dll" /> 
<Option host_application="C:\Program Files\vsthost\vsthost.exe" /> 
<Compiler> 
<Add option="-O3" /> 
<Add option="-msse2" /> 
<Add option="-ffast-math" /> 
<Add option="-DVST_API" /> 
<Add option="-DWIN32" /> 
<Add option="-D_WIN32_WINNT=0x0501" /> 
<Add option="-DWINVER=0x0501" /> 
<Add option="-D_CRT_SECURE_NO_DEPRECATE" /> 
<Add option="-DPNG_NO_ASSEMBLER_CODE" /> 
<Add option="-DPNG_LIBPNG_SPECIALBUILD" /> 
<Add option="-DDLL_BUILD" /> 
</Compiler> 
</Target> 

resource.h 

... 
// Unique IDs for each image resource. 
#define KNOB_ID  101 
// Image resource locations for this plug. 
... 

IPlugEffect.rc 

#include "resource.h" 

KNOB_ID  PNG KNOB_FN 
#define KNOB_FN  "resources/img/knob.png" 

回答