是这样的,我有个控制台程序,这个程序的功能是写日志,Socket,以及数据库操作还有其他的。数据库操作是用的mysql自带的api,需求是把这个程序设置为开机自启动的,所以选择了windows 服务程序中创建进程的方式,这个进程就是我这个控制台程序。现在的问题的是:
1:读取日志失败,获取当前路径发现是Windows\system32下。有人建议用绝对路径,因为后来启动服务程序的时候直接控制台程序窗口都没有了(之前还可以,不知道什么原因),不能看输出,所以不知道是否成功了。
2:数据库连接失败;由上面的问题猜想是路径问题,但是我mysql头文件和lib文件用的是环境变量MYSQL_HOME,也相当于是绝对路径了,而且,我吧libmysql.dll也复制到了系统路径下,还是老样子。
求大神 解决问题
1:在现在的程序的基础上,怎么处理?
2:如果不在服务里面创建进程,在服务里面创建线程,这个线程功能就是之前的控制台的exe程序.这个会不会还有以上问题。对于这个问题,应该先试试再发问,但是现在由于时间不多,所以要把问题上报所以想先得到大神们的肯定直接上报然后再尝试
你这是win32程序还是.net程序?
win32程序可以先用GetModuleHandle(NULL)获得程序exe的路径,然后取目录就能获得当前的程序所在目录。.net程序的话可以用System.Reflection.Assembly.GetExecutingAssembly()获得当前程序所在路径。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。