C ++ Указатель на функцию неверных типов

Мне нужно использовать следующую функцию, но у меня проблемы с аргументами:

В этом случае IP-адрес не устанавливается.

cwbCO_SysHandle system;
LPSTR ipAddress = "";
ULONG ipLength = 32;
cwbCO_GetIPAddress(system, ipAddress, &ipLength);

Я знаю, что мне нужно передать указатель на LPSTR в качестве аргумента, но установка следующего кода тоже не сработала:

cwbCO_SysHandle system;
LPSTR ipAddress = "";
ULONG ipLength = 32;
cwbCO_GetIPAddress(system, &ipAddress, &ipLength); //Incompatible types LPSTR* and LPSTR

Какой правильный путь?

Синтаксис

UINT CWB_ENTRY cwbCO_GetIPAddress (система cwbCO_SysHandle, IP-адрес LPSTR, длина PULONG);

параметры

Система cwbCO_SysHandle — ввод

Handle that previously was returned by cwbCO_CreateSystem or cwbCO_CreateSystemLike. It is the
IBM i identification.

LPSTR IPAddress — вывод

Pointer to a buffer that will contain the NULL-terminated IP address in dotted-decimal notation (in
the form "nnn.nnn.nnn.nnn" where each "nnn" is in the range of from 0 to 255).

PULONG длина — вход / выход

Pointer to the length of the IPAddress buffer. If the buffer is too small to hold the output, including
room for the terminating NULL, the size of the buffer

2

Решение

Я нашел документацию, cwbCO_GetIPAddress

Соответствующая часть здесь (выделение добавлено):

LPSTR IPAddress — вывод
Указатель на буфер он будет содержать IP-адрес с нулевым символом в конце в десятичном виде с точками (в форме «nnn.nnn.nnn.nnn», где каждый «nnn» находится в диапазоне от 0 до 255).

Так что ваш код должен выглядеть примерно так:

cwbCO_SysHandle system;
char ipAddress[32]; //A buffer, not a pointer!
ULONG ipLength = 32;
cwbCO_GetIPAddress(system, ipAddress, &ipLength);

Кроме того, убедитесь, что вы инициализируете system с cwbCO_CreateSystem или же cwbCO_CreateSystemLike,

4

Другие решения


По вопросам рекламы [email protected]