forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   dll глючит в Блице (http://forum.boolean.name/showthread.php?t=12351)

Coks 10.04.2010 18:55

dll глючит в Блице
 
Странная штука обнаружилась. Создал длл (VC 2008 EE) как учили. В библиотеке одна функция, которая принимает 2 числа и возвращает их сумму. В блице ставлю эту функцию в цикл рендеринга и получаю утечку памяти, а после где-то через пол минуты окно закрывается само по себе.:dontknow:

Mr_F_ 10.04.2010 21:48

Ответ: dll глючит в Блице
 
код не покажешь?

Alex.D. 11.04.2010 14:46

Ответ: dll глючит в Блице
 
Вероятно это из-за переполнения стека. Для блица нужно чтобы функции имели stdcall соглашение о вызове, т.е. сами сдвигали стек, а у тебя наверное cdecl.
После extern "C" _declspec(dllexport) ставь _stdcall.

Coks 11.04.2010 23:21

Ответ: dll глючит в Блице
 
Alex.D., большое спасибо!
Итак, чтоб нормально экспортировать функцию делаем так:
extern "C" __declspec(dllexport) int _stdcall namefunction(int variable)
или _stdcall заменяем на CALLBACK.

в деклзе для блица пишем так:
namefunction%(variable%) : "_namefunction@4"
последняя цифра это сумма переменных в байтах, передаваемых в функцию.


Часовой пояс GMT +4, время: 05:05.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot