我在我的 C 程序中使用嵌入式 python。python 脚本从在线资源中抓取一个文件并返回它收到的数据。
我的程序中包含这个特定脚本的 C 部分如下:
char* Drop::getFile(std::string path){
PyObject *pValue;
char* fileData = NULL;
pFunc = PyObject_GetAttrString(pModule,"getFile");
pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs,0,PyString_FromString(path.c_str()));
pValue = PyObject_CallObject(pFunc,pArgs);
fileData = PyString_AsString(pValue);
Py_DECREF(pFunc);
Py_DECREF(pArgs);
return fileData;
}
fileData 确实得到了一个值,但它指向的数据与从网上提取的 python 脚本不匹配。我正在测试的是一个pdf文件
%PDF-1.4%âãÏÓ 194 0 obj<>endobj
xref 194 28 0000000016 00000 n 0000001374 00000 n 0000001521 00000 n 0000001915 00000 n 0000002047 00000 n 0000002547 00000 n 0000002661 00000 n 0000002773 00000 n 0000002800 00000 n 0000003401 00000 n 0000003656 00000 n 0000004166 00000 n 0000005703 00000 n 0000006124 00000 n 0000006373 00000 n 0000006828 00000 n 0000006898 00000 n 0000007022 00000 n 0000031268 00000 n 0000031531 00000 n 0000032131 00000 n 0000056344 00000 n 0000079808 00000 n 0000080674 00000 n 0000085029 00000 n 0000085946 00000 n 0000001196 00000 n 0000000873 00000 n trailer <> <6F4E88EE2CFAE8419CCB5AF471C4A73F>]/上一页 241987/XRefStm 1196>> startxref 0 %%EOF221 0 obj<>stream hÞb
`b
YÇÀÆÀÀÆ È
但实际文件要长得多。我不知道为什么要削减数据。