以下问题敬请高手指点!!!!
问题1:
我琢磨着通过传递参数调用DLL来完成表的查询,如下面的程序,编译能通过,但运行后计算机就会报错,说读写内存错误,然后死机。
问题2:
程序中我把函数的返回值定义为Pchar类型,是因为Windows的API函数不认STRING类型,关于DELPHI和WINDOWS的一些类型之间的差别转换我还不是太清楚,请高手指点!程序段如下:
function AddData(PDatabaseName,PTableName:String):Pchar; stdcall;
var
sqlStr:string;
q:TQuery;begin
sqlStr:='';
q:=TQuery.Create(nil);
q.DatabaseName:=PDatabaseName;
sqlStr:=sqlStr+'select * from '+PTableName;
q.SQL.Clear;
q.SQL.Add(sqlStr);
q.Open;
AddData:='OK';
q.Close;
end;exports
AddData;
问题1:
我琢磨着通过传递参数调用DLL来完成表的查询,如下面的程序,编译能通过,但运行后计算机就会报错,说读写内存错误,然后死机。
问题2:
程序中我把函数的返回值定义为Pchar类型,是因为Windows的API函数不认STRING类型,关于DELPHI和WINDOWS的一些类型之间的差别转换我还不是太清楚,请高手指点!程序段如下:
function AddData(PDatabaseName,PTableName:String):Pchar; stdcall;
var
sqlStr:string;
q:TQuery;begin
sqlStr:='';
q:=TQuery.Create(nil);
q.DatabaseName:=PDatabaseName;
sqlStr:=sqlStr+'select * from '+PTableName;
q.SQL.Clear;
q.SQL.Add(sqlStr);
q.Open;
AddData:='OK';
q.Close;
end;exports
AddData;
//注意:PDatabaseName,PTableName变为 pchar类型。