Как создать псевдоним функции в C++ DLLC++

Программы на C++. Форум разработчиков
Anonymous
 Как создать псевдоним функции в C++ DLL

Сообщение Anonymous »

В научных целях я пишу несколько процедур обработки чисел на C++ и тестирую различные способы выполнения вычислений для чисел с плавающей запятой сверхвысокой точности. И когда я выбираю лучшую процедуру для конкретной цели, я хотел бы указать обобщенный псевдоним этой функции.
Например, чтобы вычислить натуральный логарифм числа, я Я закодировал три функции с именами LnXMacL, LnXHalley и LnXagm. Они реализуют натуральный логарифм тремя различными методами: рядом Маклорена, методом Галлея и средним арифметико-геометрическим. Все они демонстрируют одинаковую точность до нескольких сотен десятичных знаков, но ряд МакЛорена намного быстрее, чем два других. Поэтому вместо того, чтобы переименовывать его во что-то вроде LogX, для исторической справки я бы предпочел сохранить исходное имя нетронутым и создать псевдоним LnXMacL. Мне также хотелось бы, чтобы этот псевдоним отображался в качестве видимой точки входа в DLL, поскольку я часто использую C# для прототипирования сложных математических функций, а затем переношу их на C++. Заголовок трех функций выглядит следующим образом:

Код: Выделить всё

extern "C" __declspec(dllexport) void __stdcall LnXMacL(UINT64* LnX, UINT64* xM);
extern "C" __declspec(dllexport) void __stdcall LnXHalley(UINT64* LnX, UINT64* xM);
extern "C" __declspec(dllexport) void __stdcall LnXagm(UINT64* LnX, UINT64* xM);
В идеале псевдоним должен быть эквивалентом чего-то вроде:

Код: Выделить всё

extern "C" __declspec(dllexport) void __stdcall LogX(UINT64* LnX, UINT64* xM);
но вместо компиляции как отдельной функции ее точка входа будет напрямую обращаться к LnXMacL.
Я использую Visual Studio 2022 в Windows 11 машина. У меня есть десятилетия опыта написания кода на C, но всего несколько лет на C++. Любая помощь будет принята с благодарностью. Я тщательно искал по этому форуму и нашел много информации о псевдонимах, но не нашел ничего о создании псевдонима для одной и той же точки входа в DLL.

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-in-c-dll

Вернуться в «C++»