правильный ответ следующий:
extern "C" int MyFunc(int param);
и
int MyFunc(int param);
- это два объявления, в которых используются разные внутренние имена, первое - в стиле C, второе - в Стиль С ++.
внутреннее именование, необходимое для инструментов сборки, чтобы определить, какие аргументы получает функция, какой тип возвращает и т. Д., Поскольку C ++ более сложный (упс, перегруженные, виртуальные функции и т. Д.) - он использует более сложное именование. Соглашение о вызовах также влияет на именование c и c ++.
оба эти стиля именования применяются при одинаковом использовании __declspec (dllexport).
Если вы хотите пропустить искажение имени экспортируемой подпрограммы, добавьте файл определения модуля в свой проект, введите его (в этом случае вам не требуется declspec dllexport):
LIBRARY mylib
EXPORTS
MyFunc
это пропустит явное оформление имени (примеры ниже).
_MyFunc (c style, __cdecl)
_MyFunc@4 (c style, __stdcall)
?MyFunc@@YAHH@Z (c++ style, __cdecl)
?MyFunc@@YGHH@Z (c++ style, __stdcall)
Вы, вероятно, запрашиваете URL без завершающая косая черта, а для параметра APPEND_SLASH
установлено значение True (по умолчанию) в settings.py, чтобы Django перенаправлял на URL-адрес, включая косую черту.