· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Эпилог функций, как в PASCAL

Посл.отвђт Сообщенiе


Дата: Май 27, 2003 05:30:01

Нужно сделать, чтобы некоторые экспортируемые в DLL функции (MSVC 6.0) выглядели так:

A proc
...
ret N ; как в Паскале
A endp

При этом имена в экспорте должны быть именно A, а не _A@N или A@N.

Я пробовал варианты:

extern "C" __declspec(dllexport) DWORD A(DWORD x);
__declspec(dllexport) DWORD A(DWORD x);
extern "C" __declspec(dllexport) DWORD PASCAL A(DWORD x);
extern "C" __declspec(dllexport) DWORD WINAPI A(DWORD x);

Ни один не дает желаемого результата. Как же быть?..


Дата: Май 27, 2003 05:52:47

MSVC под рукой нет, а в BC++v5.5 так:
[code]
#include <windows.h>

__declspec(dllexport) DWORD pascal A(DWORD x);

DWORD pascal A(DWORD x)
{
...
}
[/code]


Дата: Май 27, 2003 12:25:25

Неа, так ты не избавишся от манглинга имен - это надо писать def файл, например такой:
LIBRARY "MyCoolLib"
DESCRIPTION 'MyCoolLib'
EXPORTS A PRIVATE

Ну а саму функцию описывай как хочешь, например так:
DWORD __declspec(dllexport) A(DWORD x);


Дата: Май 27, 2003 19:22:02

Спасибо, получилось. Даже и без слова PRIVATE.


Дата: Май 28, 2003 03:56:13

Dr.Golova
Я не написал, что в моем случае файл имел расширение не *.cpp, а *.с.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070