Help me!

lishan200012 2005-11-18 02:50:12
//创建DLL文件
library MyDll;
uses
SysUtils,
Classes;

function TestDll(s:String):String;stdcall;
begin
s:='';
s:=s+'Provider=SQLOLEDB.1;';
s:=s+'Password=sa;';
s:=S+'Persist Security Info=True;';
s:=S+'User ID=sa;';
s:=S+'Initial Catalog=posdb;';
s:=S+'Data Source=Servername;';
end;

exports
TestDll;
------------------------------------------------------------------


//下面是主程序
function TestDll(s:String):String;stdcall;
external 'MyDll';

procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule1.ADOConnection1.Close;
DataModule1.ADOConnection1.ConnectionString:==TestDll(); //这边怎么办?
DataModule1.ADOConnection1.LoginPrompt:=false;
DataModule1.ADOConnection1.Connected:=true;
end;
高手请指教
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishan200012 2005-11-18
  • 打赏
  • 举报
回复
请问这个“Project Project1.exe raised exception class EInvalidPointer with message 'EInvalidPointer operation'. Process stopped. use step or Run to continue.

怎么解决?
刘慧谦 2005-11-18
  • 打赏
  • 举报
回复
function TestDll(s:String):boolean;stdcall;
external 'MyDll';
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
if not TestDll(s) then exit;
DataModule1.ADOConnection1.Close;
DataModule1.ADOConnection1.ConnectionString:=s;
DataModule1.ADOConnection1.LoginPrompt:=false;
DataModule1.ADOConnection1.Connected:=true;
end;
柯本 2005-11-18
  • 打赏
  • 举报
回复
第一个要改成:
function TestDll(var s:String):boolean;stdcall;
柯本 2005-11-18
  • 打赏
  • 举报
回复
另外,改
dll的
function TestDll(s:String):String;stdcall;


function TestDll(var s:String):String;stdcall;

DataModule1.ADOConnection1.ConnectionString:==TestDll(); //这边怎么办?

DataModule1.ADOConnection1.ConnectionString:=s; //这边怎么办?
aiirii 2005-11-18
  • 打赏
  • 举报
回复
library MyDll;
uses
ShareMem, //这行
SysUtils,
Classes;

function TestDll(var s:String):boolean;stdcall;
begin
s:='';
s:=s+'Provider=SQLOLEDB.1;';
s:=s+'Password=sa;';
s:=S+'Persist Security Info=True;';
s:=S+'User ID=sa;';
s:=S+'Initial Catalog=posdb;';
s:=S+'Data Source=Servername;';
result := true;
end;


---------------------------------------------------
uses
ShareMem, //这行

function TestDll(s:String):boolean;stdcall;
external 'MyDll';

procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
if not TestDll(s) then exit;
DataModule1.ADOConnection1.Close;
DataModule1.ADOConnection1.ConnectionString:==TestDll(); //这边怎么办?
DataModule1.ADOConnection1.LoginPrompt:=false;
DataModule1.ADOConnection1.Connected:=true;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧