#d
#d
Вопрос:
Так что в Windows, на C, я мог бы сделать так
void (*add)(int,int) = GetProcAddress(hDlangMod, "add");
add(422,244);
Ответ №1:
Вы можете добавить extern (C)
, чтобы удалить искажение имени, если это то, что вы хотите, имейте в виду, что это удалит некоторые функции, такие как перегрузка на стороне общего доступа, но если вам нужна функция, легко доступная из C, это отличное решение! Вы можете прочитать больше об этом и других методах в https://dlang.org/spec/interfaceToC.html
TLDR: просто определите ее как extern (C) void GetProcAddress(your params here)
и свяжите соответствующим образом, и она будет работать.
Примечание: Ту же extern
директиву можно использовать для импорта символов из C или экспорта в C , а также для других языков и применений, это довольно полезный инструмент! Например: https://dlang.org/spec/cpp_interface.html