![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 2
|
Я уже совершенно не врубаюсь! Написал самую простую программу и ничего не работает! Помогите пожалуйста, буду очень признателен!
Вот код DLL: Цитата:
Код AS2: stop(); var dllPath:String = "mydll.dll"; btn.onRelease = function() { StartBtn = !StartBtn if(StartBtn == true) { var mydll = new mdm.DLL(dllPath) if (!mydll.isLoaded) { out.text = "Dll load failed!" mdm.prompt("Dll load failed!") } else { out.text = "Dll loaded!" mdm.prompt("Dll loaded!") } mydll.clear(); var myReturn = mydll.call("boolean", "GetConfPNG") out.text += newline + "myReturn = " + myReturn } else { out.text = "" } } Цитата:
P.S.: Функция объявлена на Экспорт в mydll.h, но и extern "C" __declspec(dllexport)bool GetConfPNG(){return true;} не меняет ситуации. Последний раз редактировалось wormworm; 22.02.2012 в 12:16. |
|
|||||
|
strange mood
|
http://www.multidmedia.com/support/l...C2%ACclass=DLL
А откуда там isLoaded? Если вместо него undefined, то в условии получится !undefined == !false == true.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
listener
|
1) isLoaded = true говорит о двух вещах: файл длл имеет место быть по указанному пути и это действительно длл, а не что-то там еще (имеется в виду формат бинарника). Впрочем, точно уже не вспомню, но что-то в этом роде.
2) цинк не обрабатывает ошибку, когда он не может найти в загруженной длл вызываемую функцию по имени, будет просто тишина. Что у вас и видно. 3) чтобы функция была видна для цинка (и не только), ее нужно объявить как экспортируемую, например, так: 4) приведенный вариант объявления экспортируемой функции не единственный, об этом можно почитать в хелпах по С/С++-dll. Я не уверен, что другие варианты будут работать именно с цинком. Во всяком случае, официально разработчиками цинка рекомендован именно такой вариант. 4) само-собой, речь идет о компиляции длл в MSVC++. ЗЫ. Gaen, это типа недокументированная фича). Последний раз редактировалось alexcon314; 22.02.2012 в 14:31. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 2
|
Как я уже уточнял в P.S. "extern "C" __declspec(dllexport) bool GetConfPNG(){return true;}" не помогает.
Компилирую в MVSC++ 2005 для mdm.Zinc 3.0 c 8-ой весией плеера. Попробовал воспроизвести пример: http://www.flasher.ru/forum/showthread.php?t=148789 Цитата:
Последний раз редактировалось mooncar; 24.02.2012 в 12:36. |
|
|||||
|
listener
|
Да, что-то я проглядел ваше дополнение, сори.
Судя по выводу примера, функции из длл отрабатывают. (GVR - это же ваш логин в системе?). Возможно, просто затык с возвращаемым типом bool. int, char* работают ведь. Третий цинк я как следует не использовал, но припоминаю какие-то проблемы в этом роде были. Пример этот, кстати, проверялся мной еще на втором цинке. Там все работало без проблем. Думаю, что все-таки это косяк цинка третьей версии. Последний раз редактировалось alexcon314; 24.02.2012 в 13:21. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|