windows 服务程序的问题,折腾的只剩下半条命了

nullptr 发布于 2014/07/20 09:53
阅读 219
收藏 0

是这样的,我有个控制台程序,这个程序的功能是写日志,Socket,以及数据库操作还有其他的。数据库操作是用的mysql自带的api,需求是把这个程序设置为开机自启动的,所以选择了windows 服务程序中创建进程的方式,这个进程就是我这个控制台程序。现在的问题的是:

1:读取日志失败,获取当前路径发现是Windows\system32下。有人建议用绝对路径,因为后来启动服务程序的时候直接控制台程序窗口都没有了(之前还可以,不知道什么原因),不能看输出,所以不知道是否成功了。

2:数据库连接失败;由上面的问题猜想是路径问题,但是我mysql头文件和lib文件用的是环境变量MYSQL_HOME,也相当于是绝对路径了,而且,我吧libmysql.dll也复制到了系统路径下,还是老样子。

求大神 解决问题

1:在现在的程序的基础上,怎么处理?

2:如果不在服务里面创建进程,在服务里面创建线程,这个线程功能就是之前的控制台的exe程序.这个会不会还有以上问题。对于这个问题,应该先试试再发问,但是现在由于时间不多,所以要把问题上报所以想先得到大神们的肯定直接上报然后再尝试

加载中
0
realanan
realanan

你这是win32程序还是.net程序?
win32程序可以先用GetModuleHandle(NULL)获得程序exe的路径,然后取目录就能获得当前的程序所在目录。.net程序的话可以用System.Reflection.Assembly.GetExecutingAssembly()获得当前程序所在路径。

0
newzai
newzai
  你可以启动以后更改当前工作目录(在你打开任何文件之前),就不会在system的目录下面了,服务肯定是没有控制台了,如果可以的话,你可以实现各telnet服务在里面,通过telnet打印数据
返回顶部
顶部