codeblocks / проблемы с mingw и windres при создании .dll (VST плагин) с ресурсами png

#resources #mingw #codeblocks #vst

#Ресурсы #mingw #codeblocks #vst

Вопрос:

У меня есть VST плагин, который отлично компилируется с VS200X / MSVC. Я пытаюсь создать проект Codeblocks / MinGW также для пользователей, которые предпочитают эту среду.

Когда я создаю dll с codeblocks, она работает на хосте VST с графическим интерфейсом, пока я не начну пытаться включить ресурсы (файлы.png)

Я включаю файл .rc в проект codeblocks. Пути к ресурсам в моем файле resource.h не содержат пробелов.

Если я попытаюсь скопировать встроенный.файл dll в операционной системе заблокирован. Это почти так, как если бы windres не компилировал ресурсы успешно и сохранил дескриптор файла — хотя по размеру .dll похоже, что ресурсы есть. Если я попытаюсь запустить dll на хосте vst через GDB, он не достигнет никаких точек останова … предположительно, хост не может загрузить .dll.

вот настройки компилятора codeblocks cbp…

 <Target title="Release Win32">
<Option output="build-win-cbIPlugEffect" prefix_auto="1" extension_auto="1" />
<Option working_dir="build-win-cb" />
<Option object_output="build-win-cbRelease" />
<Option type="3" />
<Option compiler="gcc" />
<Option parameters="IPlugEffect.dll" />
<Option host_application="C:Program Filesvsthostvsthost.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"
  

Ответ №1:

проблема решена. Мой экспорт / видимость символов dll не были корректными для gcc.

http://forum.cockos.com/showpost.php?p=835609amp;postcount=21