Можно ли (и если да, то как) создать библиотеку импорта, которая бы экспортировала функции не под теми именами, под которыми они в находятся в DLL. Чтобы было попонятнее приведу пример: В user32.dll есть функции _MessageBoxA@16 и _MessageBoxW@16. Я хочу, чтобы моя программа могла пользоваться ими как int MessageBox(HWND, LPCSTR, LPCSTR, UINT); int MessageBox(HWND, LPCWSTR, LPCWSTR, UINT); (замечу, что никакого extern "C"). Я хочу, чтобы библиотека импорта экспортировала функции под задекорироваными C++ именами, а импортировала из user32.dll как _MessageBoxA@16 и _MessageBoxW@16. Таким образом, можно было бы сымитировать перегрузку WinAPI функций
посмотри таблицу экспорта - нет там таких функций. эт заморочки компилятора, чтобы он знал сколько параметров юзает функция и тип вызова. не нравится - ничего не поделаешь, либо меняй компилятор, либо привыкай.
Вообщем проблема решена с помощью такого файла для Fasm Код (Text): format MS COFF extrn "?MessageBoxW@user@winapi@yk@@YGHPAVWindowDescription@123@PB_W1UMessageBoxFlags@123@@Z" as MessageBoxW:DWORD public MessageBoxW as '?MessageBox@user@winapi@yk@@YGHPAVWindowDescription@123@PB_W1UMessageBoxFlags@123@@Z' extrn "?MessageBoxA@user@winapi@yk@@YGHPAVWindowDescription@123@PBD1UMessageBoxFlags@123@@Z" as MessageBoxA:DWORD public MessageBoxA as '?MessageBox@user@winapi@yk@@YGHPAVWindowDescription@123@PBD1UMessageBoxFlags@123@@Z'