dll with stdcall functions
От: Vasilich  
Дата: 28.09.04 13:27
Оценка:
Народ, может вы поможете найти правильное решение?

http://forum.ixbt.com/0026/029638.html#15

С уважением, Андрей

18.10.04 04:53: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: dll with stdcall functions
От: maq Россия http://www.maqdev.com
Дата: 28.09.04 14:02
Оценка:
Здравствуйте, Vasilich, Вы писали:

V>Народ, может вы поможете найти правильное решение?


V>http://forum.ixbt.com/0026/029638.html#15


V>С уважением, Андрей


Объявить как подсказали:
typedef int ( __stdcall * iFMyFunction)( enum);


И добавить в .DEF файл чтобы название не декорировалось
... << RSDN@Home 1.1.4 beta 2 >>
Re[2]: dll with stdcall functions
От: Vasilich  
Дата: 28.09.04 14:36
Оценка:
Здравствуйте, maq, Вы писали:

maq>Здравствуйте, Vasilich, Вы писали:


V>>Народ, может вы поможете найти правильное решение?


V>>http://forum.ixbt.com/0026/029638.html#15


V>>С уважением, Андрей


maq>Объявить как подсказали:

maq>
maq>typedef int ( __stdcall * iFMyFunction)( enum);
maq>


maq>И добавить в .DEF файл чтобы название не декорировалось


Sorry, не понял немного.
Первое я уже сделал
typedef int ( __stdcall * iFMyFunction)( enum);


А вот второе, я так понимаю, что .DEF файл создается на этапе создания самого dll. А я на этапе использования. maq подскажи еще немного
Re[3]: dll with stdcall functions
От: maq Россия http://www.maqdev.com
Дата: 28.09.04 14:46
Оценка:
V>А вот второе, я так понимаю, что .DEF файл создается на этапе создания самого dll. А я на этапе использования. maq подскажи еще немного

Да — на этапе создания, это если хочешь чтобы в конечном .dll было нормальное (не декорированное) имя.
А на этапе использования привязываешься к имени функции которая экспортируется, выбора тут нет
... << RSDN@Home 1.1.4 beta 2 >>
Re[2]: dll with stdcall functions
От: MShura  
Дата: 28.09.04 17:04
Оценка:
Здравствуйте, maq, Вы писали:

maq>Здравствуйте, Vasilich, Вы писали:


V>>Народ, может вы поможете найти правильное решение?


V>>http://forum.ixbt.com/0026/029638.html#15


V>>С уважением, Андрей


maq>Объявить как подсказали:

maq>
maq>typedef int ( __stdcall * iFMyFunction)( enum);
maq>


maq>И добавить в .DEF файл чтобы название не декорировалось


Можно без DEF файла, а воспользоваться опцией линкера /export
#pragma comment(linker, "/export:iFMyFunction=FullDecoratedNameOfiFMyFunction")
Где FullDecoratedNameOfiFMyFunction это имя функции, данное компилятором.

Если написать так

extern "C" 
int
__stdcall
iFMyFunction( 
    enum
    )
{
  ...
}


То тогда можно обойтись без def файла так:

#pragma comment(linker, "/export:_iFMyFunction=_iFMyFunction@4")
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.