BCB调用DLL失误,求高手解答
BCB调用DLL出错,求高手解答
我现在需要通过一个DLL(该DLL里面有访问oracle数据库的函数)来获取oracle里的数据。结果什么数据也没得到。。
该DLL是用labview写的,不知道用BCB调用有什么注意的地方。。
函数原型: int16_t GetQbidDataFromOracle(char config_file[], char serial_number[],uint8_t qbid_data[]);
第一个参数是配置文件路径,里面是访问oracle用户名和密码之类的信息,第二个是产品的序列号,前2个参数是输入参数,第三个参数是将查询的数据存入该数组里。
我写的代码如下:请各位高手看看哪里有问题,为啥qbid_data数组是空的。
int16_t (*GetQbid)(char config_file[], char serial_number[],uint8_t qbid_data[]); //申明函数指针
char config_file[]="C:\\Mfg_test\\AXS2200\\conora.cfg"; //配置文件路径
char serial_number[]="K11FX11061010040" ; //产品序列号
uint8_t qbid_data[1024];
HINSTANCE hInst;
FARPROC lpFarProc;
memset(qbid_data,0,1024);
hInst =LoadLibrary("C:\\Mfg_test\\DLLs and Libs\\OracleAPI.dll"); //该DLL的路径
if(hInst==NULL)
{
ShowMessage("load dll error ");
return;
}
lpFarProc = GetProcAddress(hInst,"GetQbidDataFromOracle");
if(lpFarProc==NULL)
{
ShowMessage("error locate function");
return;
}
GetQbid= (int16_t (*)(char config_file[], char serial_number[],uint8_t qbid_data[]))lpFarProc; //强制类型转化
GetQbid(config_file,serial_number,qbid_data);
char *p=(char*)qbid_data;
String str=p;
ShowMessage(str); //show出来是空的,神马数据都没有!!
FreeLibrary(hInst);
大侠们看看问题处在哪了。。
------解决方案--------------------
哪里出错?只是结果为空而已。
------解决方案--------------------
ShowMessage出来空不代表qbid_data的内容为空,如果qbid_data[0]='\0',后面即使有内容,也不会显示的
我现在需要通过一个DLL(该DLL里面有访问oracle数据库的函数)来获取oracle里的数据。结果什么数据也没得到。。
该DLL是用labview写的,不知道用BCB调用有什么注意的地方。。
函数原型: int16_t GetQbidDataFromOracle(char config_file[], char serial_number[],uint8_t qbid_data[]);
第一个参数是配置文件路径,里面是访问oracle用户名和密码之类的信息,第二个是产品的序列号,前2个参数是输入参数,第三个参数是将查询的数据存入该数组里。
我写的代码如下:请各位高手看看哪里有问题,为啥qbid_data数组是空的。
int16_t (*GetQbid)(char config_file[], char serial_number[],uint8_t qbid_data[]); //申明函数指针
char config_file[]="C:\\Mfg_test\\AXS2200\\conora.cfg"; //配置文件路径
char serial_number[]="K11FX11061010040" ; //产品序列号
uint8_t qbid_data[1024];
HINSTANCE hInst;
FARPROC lpFarProc;
memset(qbid_data,0,1024);
hInst =LoadLibrary("C:\\Mfg_test\\DLLs and Libs\\OracleAPI.dll"); //该DLL的路径
if(hInst==NULL)
{
ShowMessage("load dll error ");
return;
}
lpFarProc = GetProcAddress(hInst,"GetQbidDataFromOracle");
if(lpFarProc==NULL)
{
ShowMessage("error locate function");
return;
}
GetQbid= (int16_t (*)(char config_file[], char serial_number[],uint8_t qbid_data[]))lpFarProc; //强制类型转化
GetQbid(config_file,serial_number,qbid_data);
char *p=(char*)qbid_data;
String str=p;
ShowMessage(str); //show出来是空的,神马数据都没有!!
FreeLibrary(hInst);
大侠们看看问题处在哪了。。
------解决方案--------------------
哪里出错?只是结果为空而已。
------解决方案--------------------
ShowMessage出来空不代表qbid_data的内容为空,如果qbid_data[0]='\0',后面即使有内容,也不会显示的