2.需要
3.打包会对DLL进行单独封装
4.你可以尝试动态创建,动态设定你的数据源信息,包括密码,用户名,这样,你程序中调用相对应的就可以了!
没有渣隐服务器,你是执行补了你的SQL语句的,我给你一个例子,具体你使用什么语言开发,不一样
开发环境下的注册表中的ODBC数据源信息导出到一个文件中,然后将导出的内容作为应用程序中的字符串常量进行保存。在程序运行的时候,检查ODBC数据源的注册情况,如果发现注册不正确,就根据环境的信息和字符串常量动态的确定注册表的内容,写如一个临时的注册表文件中。用批处理文件将该临时文件中的ODBC数据源信息导入到系统如源厅注册表,从而实现了ODBC数据源的动态注册。
*** 作步骤
1.运行注册表编辑器程序(Regedit.exe)。
2.从注册表项\HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources下导出数据源名称信息到Reg1.reg文件中。这个表项下面存放的是用户定义的数据源,如果需要系统数据源信息,则可导出HKEY_Local_Machine\Software\ODBC.INI\ODBC Data Sources到注册文件中。
3.导出要注册的数据源名称的具体连接参数信息到db2.reg中。在此,以导出名称为“PostMdb”的数据为例,具体路径: \HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\PostMdb。
4.用文本编辑器如(NotePad.exe)打开上述db1.reg文件,保留数据源名称为PostMdb的行;并将db2.reg文件内容与当前db1.reg内容合并。假设修改后“PostMdb”数据源注册信息如下:
REGEDIT4
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
〃PostMdb〃=〃Microsoft Access Driver (*.mdb)〃
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\PostMdb]
〃Driver〃=〃C:\\WINDOWS\\SYSTEM\\ODBCJT32.DLL〃
〃DBQ〃=〃c:\\My Documents\\db1.mdb? r>
〃Description〃=〃Post Card Mis Database〃
〃DriverId〃=dword:00000019
〃FIL〃=〃MS Access〃
〃SafeTransactions〃=dword:00000000
〃UID〃=〃〃
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\PostMdb\Engines]
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\PostMdb\Engines\Jet]
〃ImplicitCommitSync〃=〃〃
〃MaxBufferSize〃=dword:00000800
〃PageTimeout〃=dword:00000005
〃Threads〃=dword:00000003
〃UserCommitSync〃=〃Yes〃5.动态注册ODBC数据源的实现从上述注册信息可以看出,对于特定的数据源来说,实际上要动态确定的只是“Driver”和“DBQ”两项内容。将“Driver”=“C:\\WINDOWS\\SYSTEM\\ODBCJT32.DLL”修改为“Driver”=“%s\\ODBCJT32.DLL”,将“DBQ”=“c:\\My Documents\\db1.mdb”修改为“DBQ”=“%s\\db1.mdb”。复制修改后的注册信息到程序单元中存储为一字符串常量,命名为OdbcStr,使用程序调用裂宏即可
其咐橘实我想说…创建VS的ATL COM EXE工程就有整个WINDOWS服务的框架了…在它的代码基础上添加你的逻辑代码就行了;它的框架本身衡迟团就已旦裂经实现了注册和反注册功能,启动也是有的,只是暂停需要你修改一点代码CString str1char buff[1024]
typedef int (WINAPI ICEPUB_MACHINEGETINFO)(int typeFlag,char *strInfo)
ICEPUB_MACHINEGETINFO *icePub_machineGetInfo = 0
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll")
if(hDLLDrv)
{
icePub_machineGetInfo = (ICEPUB_MACHINEGETINFO *)GetProcAddress(hDLLDrv, "icePub_machineGetInfo")
}
UpdateData(TRUE)
icePub_machineGetInfo(1,buff)
str1=buff//mac
icePub_machineGetInfo(2,buff)
str1=str1+buff//cpu
icePub_machineGetInfo(3,buff)
str1=str1+buff//harddisk
icePub_machineGetInfo(4,buff)
str1=str1+buff//memery
icePub_machineGetInfo(5,buff)
str1=str1+buff//boarddate
AfxMessageBox(str1)
//md5到处是坦孙搭代码,搜一下即可
VB版凯迹调用:
Private Declare Function icePub_machineGetInfo Lib "icePubDll.dll"让拿 (ByVal typeFlag As Integer, ByVal strInfo As String) As Integer
Dim str1 As String
Dim a2 As Integer
str1 = Space(1024*10)
a2 = icePub_machineGetInfo(1, str1)
MsgBox "mac:" + str1
a2 = icePub_machineGetInfo(2, str1)
MsgBox "cpu:" + str1
a2 = icePub_machineGetInfo(3, str1)
MsgBox "harddisk:" + str1
a2 = icePub_machineGetInfo(4, str1)
MsgBox "memery:" + str1
a2 = icePub_machineGetInfo(5, str1)
MsgBox "boarddate:" + str1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)