CBuilder и экспорт функций
От: William  
Дата: 01.07.03 14:11
Оценка:
Привет всем

Пишу DLL, которая экспортирует функцию:

extern "C" int __declspec(dllexport) SomeFunction(void)
{
return 0;
}

Потом смотрю tdump'ом, а там _SomeFunction, т.е. знак подчеркивания появляеся.
Ведь по идее должно быть просто SomeFunction. Как не крутился, не могу от него избавиться.

Не подскажите, как быть?

С уважением, Илья
Re: CBuilder и экспорт функций
От: Galogen  
Дата: 01.07.03 14:35
Оценка:
W>Не подскажите, как быть?

"Ведь по идее ( по твоей ) должно быть просто SomeFunction. Как не крутился, не могу от него избавиться. "

И не избавишься. оно тебе надо . Просто вызывай как есть _Имя
Re[2]: CBuilder и экспорт функций
От: William  
Дата: 02.07.03 06:34
Оценка:
W>>Не подскажите, как быть?

G>И не избавишься. оно тебе надо . Просто вызывай как есть _Имя


Не могу, потому что вызываю не я, а та прога для которой плагин нужен, а ей подавай безо вских '_'

На самом деле можно исбаваиться, если в Options->Advanced compilation снять галку Generate undescores, но тогда перестают линковаться всякие нужные функци вроде memset, strcpy и пр. Что в лоб, что полбу, короче
Re: CBuilder и экспорт функций
От: Denwer Россия  
Дата: 02.07.03 10:10
Оценка:
Здравствуйте, William, Вы писали:

W>Привет всем


W>Пишу DLL, которая экспортирует функцию:


W>extern "C" int __declspec(dllexport) SomeFunction(void)

W>{
W> return 0;
W>}

W>Потом смотрю tdump'ом, а там _SomeFunction, т.е. знак подчеркивания появляеся.

W>Ведь по идее должно быть просто SomeFunction. Как не крутился, не могу от него избавиться.

W>Не подскажите, как быть?


W>С уважением, Илья


А ты вписал ее в DEF файл?
Re: CBuilder и экспорт функций
От: Аноним  
Дата: 02.07.03 10:20
Оценка:
Здравствуйте, William, Вы писали:

W>Привет всем


W>Пишу DLL, которая экспортирует функцию:


W>extern "C" int __declspec(dllexport) SomeFunction(void)

W>{
W> return 0;
W>}

W>Потом смотрю tdump'ом, а там _SomeFunction, т.е. знак подчеркивания появляеся.

W>Ведь по идее должно быть просто SomeFunction. Как не крутился, не могу от него избавиться.

W>Не подскажите, как быть?


W>С уважением, Илья

твоя функция поумолчанию объявляется как __cdecl, а для этого соглашения о вызове Builder добавляет к имени функции подчеркивание, чтобы избваиться можно объявить твою функцию как __stdcall, либо создать следующий def-файл
EXPORTS
SomeFunc = _SomeFunc
и прилинковать его к проекту DLL, после этого можете вызывать вашу функцию по оригинальному имени
Re[2]: CBuilder и экспорт функций
От: William  
Дата: 02.07.03 12:20
Оценка:
А>твоя функция поумолчанию объявляется как __cdecl, а для этого соглашения о вызове Builder добавляет к имени функции подчеркивание, чтобы избваиться можно объявить твою функцию как __stdcall, либо создать следующий def-файл
А>EXPORTS
А>SomeFunc = _SomeFunc
А>и прилинковать его к проекту DLL, после этого можете вызывать вашу функцию по оригинальному имени

__stdcall помогло

Большое спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.