郁闷!应用程序调试完后,居然不知怎样编译发行?

endearyou 2005-07-29 05:17:42
最近把一个小程序调试完后,想把它进行编译发行,找来书一看,感觉有些复杂。书中介绍编译成可执行应用在脱离开发环境的情况下,正常运行需要两方面内容:PB应用运行应具有的基本环境和应用系统编译后的.exe、.pbd/.dll文件和其它文件。按照书中要求的,需要的文件挺多。
问题1:安装PB应用运行所需环境的DLL文件是不是要一项项从本地机器上搜索找到该DLL文件再拷到目的文件中?
问题2:应用程序使用ODBC驱动程序,是不是要为用户的机器中安装配置ODBC驱动程序的参数?
问题3:我怎么看到别人生成的.exe文件根本就不需要配置什么其它东东,安装完即可用!
我是刚学编译发行这一块的知识,请大家多指教!
谢谢!
...全文
248 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-11-19
  • 打赏
  • 举报
回复
是挺郁闷的

就让楼上的哥们负责指点新手入门吧


鼓励一下

qfkx.com
j9dai 2005-11-19
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4378/4378056.xml?temp=.9165308
planks 2005-11-18
  • 打赏
  • 举报
回复
去下载一个wise安装制作软件吧.ODBC太简单了.
endearyou 2005-08-02
  • 打赏
  • 举报
回复
To wbchn:
辛苦了,有一点不明白,上面的代码是放在应用程序中哪个事件中?
还有一个好菜的问题:数据源与数据库是不是一回事呢,即你上面所说的数据源hbsoft,所谓的配置数据源是不是对给定的数据库进行接口参数设置吧,数据库是自己先创建的?
谢谢了!
Binary Wang 2005-08-02
  • 打赏
  • 举报
回复
忘了说明了,上面是access数据库的自动配置代码。
Binary Wang 2005-08-02
  • 打赏
  • 举报
回复
//建立odbc数据源
ULong ul_num
Int li_rtn
String ls_driver,app_path,db_path,odbcstr

app_path= getcurrentdirectory()+'\'
db_path = app_path+"xxx.mdb"

//得到连接文件名
li_rtn = RegistryGet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb)", "Driver", RegString!, ls_driver)
IF li_rtn = -1 THEN
messagebox("错误","未安装Access 数据库引擎 !",information!,ok!)
return
END IF


////设置ODBC DATA SOURCE名称(bhsoft为数据源名)
li_rtn = RegistrySet("HKEY_current_user\Software\ODBC\ODBC.INI\ODBC Data Sources","bhsoft",RegString!,"Microsoft Access Driver (*.mdb)")

IF li_rtn = -1 THEN
MessageBox("错误","应用程序无法设置ODBC DATA SOURCE名称,系统将终止运行!",Stopsign!)
RETURN
END IF
//
//设置ODBC数据元细节
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft","DBQ",RegString!,DB_PATH)
if li_rtn=-1 then
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
end if
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "Description" , RegString!, "bhsoft")
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "Driver" , RegString!, ls_driver)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "DriverID" , RegULong!, 25)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "FIL" , RegString!, "MS Access;")
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "SafeTransactions" , RegULong!, 0)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft", "UID" , RegString!, "")
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF

li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft\Engines\Jet", "ImplicitCommitSync" , RegString!, "")
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft\Engines\Jet", "Threads" , RegULong!, 3)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft\Engines\Jet", "PageTimeout" , RegULong!, 5)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft\Engines\Jet", "MaxBufferSize" , RegUlong!, 2048)
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF
li_rtn=RegistrySet("HKEY_current_user\software\odbc\odbc.ini\bhsoft\Engines\Jet", "UserCommitSync" , RegString!, "Yes")
IF li_rtn = -1 THEN
messagebox("错误","写注册表出错!ODBC注册失败!请手动添加!",information!,ok!)
return
END IF

并非原创,在原来得基础上只是作了一些修改!

Binary Wang 2005-08-02
  • 打赏
  • 举报
回复
可以在自己的程序里自动配置odbc数据源,这方面的资料太多了。
endearyou 2005-08-01
  • 打赏
  • 举报
回复
看到楼上的,仍然一知半解,关键是提出了思路,没有一些具体的可操作性的步骤。对于wscft关于总是的方法,只知道可以打包,不用客户手工配置,但具体如何做呢,没说清楚,至少应该提供如何实现的步骤吧,才能有利于问题的解决!
期待中!
谢谢
endearyou 2005-07-30
  • 打赏
  • 举报
回复
To:wscft
感谢你的回答,关于问题2具体是如何把ODBC的配置和与服务端的连接打包到安装到安装程序中支的,如何操作操作呢?
wscft 2005-07-30
  • 打赏
  • 举报
回复
问题1: 只要把..\Sybase\Shared\PowerBuilder文件夹内的几个.dll放到应用程序所在的文件夹就能
保证程序的正常运行了,pb 的exe 文件只需要这几个(当然对于程序中调用的外部DLL就另当别论了)
问题2:如果使用odbc连接数据库,必须给客户配置odbc,但是你可以把odbc的配置和与服务端的连接打包到安装程序中去, 让安装程序去做而不须客户手工配置 程序安装完了就能运行
问题3:有的程序是读配置文件连接库的, 有的是在安装的时候把连接信息写到注册表中的, 各有利弊
superlion 2005-07-30
  • 打赏
  • 举报
回复
用INNO SETUP4吧, ODBC完全可以通过VB脚本配置.很灵活
endearyou 2005-07-29
  • 打赏
  • 举报
回复
To:suzh1133

关于问题1,DLL文件可以在本机上搜索到再拷到目的文件中,但书中介绍的只是普通方法(即DLL是适合大众化的),而每个.exe文件需要的DLL文件是不同的,这不同的DLL文件如何确定?
关于问题2,我使用别人的数据库,为何不用配置,假设你的ODBC发布给全球,那不是你要为所有人去配置吗,真的是这样吗,没有不用给客户配置的方法吗?
关于问题3,打包的软件工具很多,前两个问题解决,此问题应该不难了!
关注继续!
suzh1133 2005-07-29
  • 打赏
  • 举报
回复
问题1:如果脱离环境,需要pd自带的dll,需要那些网上可以找到
问题2:如果你使用odbc连接数据库,那你必须给客户配置odbc
问题3:打包的时候将需要的dll一起打包,就可以生成一个exe文件执行就行,可以用installshied工具打包

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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