В C ++ передача по ссылке полностью прозрачна на сайте вызывающей стороны.Он не различает параметры по ссылкам, используемые для ввода, вывода или обоих.Но он также не разрешает объявления переменных внутри вызова функции, поэтому вы должны объявить их заранее.Окончательный код довольно прост:
double* arr_not_allocated;
UINT arrayCount = whatever;
allocate(arr_not_allocated, arrayCount);
/* now both arrayCount and arr_not_allocated have been updated by the function */
Если у вас нет библиотеки импорта, вам, возможно, придется использовать LoadLibrary()
и передать полученный дескриптор на GetProcAddress
.Результат GetProcAddress
приведен к правильному типу указателя на функцию, то есть typedef void (*allocate_fnptr)(double*&, UINT&);
Я не включил соглашение о вызовах, потому что ваш вопрос не указал его.Но вам может потребоваться добавить __cdecl
или __stdcall
в тип указателя на функцию.