Мне нужно использовать следующую функцию, но у меня проблемы с аргументами:
В этом случае 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
Я нашел документацию, 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
,