面试的两个问题(50分)

  • 主题发起人 主题发起人 初学者1
  • 开始时间 开始时间

初学者1

Unregistered / Unconfirmed
GUEST, unregistred user!
1。动态连接库做好后,如果要更改,问:不启动机器如何让他生效
2。ado连接数据库,需要提供服务器名,假设有若干人共同开发,每个人的服务器名是
不一样的,当大家开发好后,拿到一台机子上调试,怎么办?
 
1.联合使用LoadLibrary和GetProcAddress即可达到动态调用DLL的效果,例子:
Var
SHEmptyRecycleBin : TSHEmptyRecycleBin ;
LibHandle : THandle ;
begin
LibHandle:=LoadLibrary(PChar('Shell32.dll')) ;
If LibHandle<>0 then
@SHEmptyRecycleBin:=GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
Else Begin
MessageDlg('Failed to load Shell32.dll.', mtError, [mbOK], 0);
Exit ;
End ;
If @SHEmptyRecycleBin <> nil then
SHEmptyRecycleBin(Application.Handle ,
'' ,
SHERB_NOCONFIRMATION or
SHERB_NOPROGRESSUI or
SHERB_NOSOUND ) ;
FreeLibrary(LibHandle);
@SHEmptyRecycleBin := nil ;
End;
 
2、作为系统分析员我会要求有一个可以让用户设置服务器名的功能,把adoconnection的
connectionstring的信息写到注册表里,这样不因为用户的服务器不同需要修改程序,所有
的连接信息去注册表中取就好了。
 
楼上的

regsrv/u 是什么意思呀
 
可能是注册DLL文件的意思吧!
 
欢迎大家踊跃发言
 
2.使用别名,服务器名不一样,但别名是一样的。
 
怎么设置?
 
ADO不存在什么别名吧?
我在程序中都是在OnCreate事件中从Ini文件中读出ADOConnection的ConnectionString,
用function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
还可以动态设置ConnectionString;
 
>>教夫:
请你具体点!!
说句实话,我还从未用过ini,关于两个方面都帮忙说清楚点,分数不够可以另加!!
 
在帮助中查一查TIniFile吧,很详细的。
 
那就将
function PromptDataSource
(ParentHandle: THandle; InitialString: WideString): WideString;
还可以动态设置ConnectionString;
讲一下??
 
动态设置ConnectionString有什么好奇怪的?大部分VCL的属性都可以动态设置啊。
var
s:String;

s:=PromptDataSource(handle,ADOConnection.connectionstring);
ADOConnection.connected:=False;
ADOConnection.ConnectionString:=s;
ADOConnection.Connected:=True;
 
教父,你可以获得20分了,赶快帮我把第一个问题也解决了,谢谢
请问creation-zy的方法对不对?帮我推荐一本delphi调用dll的书,ok?
 
creation-zy说的是如何动态调用DLL的方法,而你的问题好象是自己写DLL的问题,我还是
建议你找本书看看,基本上每本讲DELPHI的书都会讲到DLL的问题,我看DLL的书是D3和D4的,
可能老了些,就不推荐了。
 
多人接受答案了。
 
后退
顶部