Возвращение потока файлов из C++ dll в Centura Team Developer
Я нашел библиотеку QRCode C / C++ и хочу использовать ее как.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". Может ли кто-нибудь помочь мне здесь, пожалуйста?
1 ответ
Верните его в виде байтового массива и используйте в Gupt a строку приема LPCSTR.