Возвращение потока файлов из 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.

Другие вопросы по тегам