精通dll的高手请进,有事请教
我有一个dll,在dll入口中段建立数据库连接,我在delphi中做了个主程序测试dll
是成功的。但是别人在c#.net中调用(dll至于web服务器上)就不成功,请问原因在哪里呢?
下面是dll项目文件的部分代码:
procedure DLLEntryPoint(dwReason:DWord);
begin
Case dwReason of
DLL_PROCESS_ATTACH:
begin
CoInitialize(nil); //初始化COM对象
BuildConn; //建立数据连结
end;
DLL_PROCESS_DETACH:
begin
FreeConn; //释放数据连接
CoUninitialize(); //清除Com对象
end;
end;
end;
{$R *.res}
exports
GetStr;
begin
DLLProc:=@DLLEntryPoint;
DllEntryPoint(DLL_PROCESS_ATTACH);
end.
//全局变量
var
Adoconnection:TAdoConnection;
DataSource:String;//数据库ip
DataBase:String; //数据库名
DBUser:String; //数据库登录用户
DBPassWord:String;//数据库密码
procedure BuildConn;
procedure GetDBParam
begin
DataSource:='192.168.0.210';
DataBase:='Panda';
DBUser:='sa';
DBPassword:='SUMSUNG';
end;
begin
GetDBParam;
AdoConnection:=TAdoConnection.Create(Nil);
With AdoConnection do
begin
ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+DBUser+';Password='+DBPassWord+';Initial Catalog='+DataBase+';Data Source='+DataSource;LoginPrompt:=False;
Connected:=True;
end;
end;
procedure FreeConn;
begin
AdoConnection.Connected:=False;
AdoConnection.Free;
end;