将文件流从C ++ dll返回到Centura Team Developer

时间:2014-07-30 08:52:45

标签: c++ dll guptateamdeveloper centura

我找到了一个C / C ++ QRCode库,并希望将其用作.dll。 一个函数,简称为“qrcode”,有char szSourceString[], char OUT_FILE[]作为参数。 SourceString是konvert的文本,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 个答案:

答案 0 :(得分:2)

将其作为字节数组返回,并在Gupta中使用接收字符串LPCSTR。