Ошибка при использовании dllexport? - PullRequest
2 голосов
/ 16 марта 2012

Я хочу экспортировать функции с помощью dllexport. Но я столкнулся с ошибкой, когда компилятор "ошибка C4439: 'WrappedC': определение функции с управляемым типом в подписи должно иметь соглашение о вызовах __clrcall".

Мой код в заголовочном файле (.h):

extern "C" 
{

__declspec(dllexport) int __stdcall ABC(int i);
__declspec(dllexport) char* __stdcall C(int i);
__declspec(dllexport) array<char>^ __stdcall WrappedC(int i) ;

}

Я попытался изменить _stdcall на __clrcall, но он сделал еще одну ошибку:

error C3395: 'WrappedC' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention

Я искал в интернете, но пока не решил.

Спасибо

T & TGroup

1 Ответ

1 голос
/ 16 марта 2012

Компилятор уже в значительной степени рассказал вам, в чем проблема.

__declspec(dllexport) array<char>^ __stdcall WrappedC(int i)

Вы не можете использовать __declspec(dllexport) из-за того, что эта функция использует clr.

array<char>^ - это та часть, на которую он жалуется, поскольку это не нативный код.

...