Я нашел C / C ++ QRCode Library и хочу использовать ее как .dll.
Одна функция, называемая просто «qrcode», имеет char szSourceString[], char OUT_FILE[]
в качестве параметров.
SourceString
это текст для преобразования и OUT_FILE
это имя файла Эта функция записывает .bmp.
В Gupta / Centura Team Developer 5.2, где мне нужно использовать .dll, мне нужно передать эти параметры как «LPSTR».
Вышеупомянутое прекрасно работает, но я ищу способ вернуть файловый поток вместо того, чтобы писать .bmp, который я должен снова открыть в Centura для дальнейшей обработки.
В библиотеке C ++ файл записан так:
if (!(fopen_s(&f, OUT_FILE, "wb")))
{
fwrite(&kFileHeader, sizeof(BITMAPFILEHEADER), 1, f);
fwrite(&kInfoHeader, sizeof(BITMAPINFOHEADER), 1, f);
fwrite(pRGBData, sizeof(unsigned char), unDataBytes, f);
fclose(f);
Я хочу вернуть unsigned char*pRGBData
туда, где я называю это из Centura.
Я понятия не имею, как это сделать / какой тип данных использовать.
Я пытался конвертировать pRGBData
в std :: string и вернуть его, но это вызывает сбой при вызове функции из Centura. Я не знаю, будет ли само преобразование работать нормально, или оно просто сбоит, потому что я выбрал неправильный тип данных. Как Centura- «String» я могу передать «HARRAY»
HSTRING, LPSTRING, LPCSTR, LPCWSTR, LPVOID, LPWSTR «.
Может ли кто-нибудь помочь мне здесь, пожалуйста?
Верните его в виде байтового массива и используйте в Gupta строку приема LPCSTR.