Vij*_*hew 7 c++ multithreading mingw
我正在尝试使用MingW构建Windows服务.它需要线程安全异常,因此我添加了链接器标志-mthreads.应用程序在命令行中工作正常,但是当我尝试从services.msc启动时,会引发1054错误("服务未及时响应启动或控制请求").如果我在没有-mthreads标志的情况下重新构建它,服务就会启动.我怎样才能使用-mthreads?
我怀疑-mthreads引入了对DLL的依赖,并且当它作为服务运行时,该DLL不在路径上.在我的cygwin环境中,如果我使用"-mno-cygwin -mthreads"编译一个简单的程序,我会依赖MINGWM10.DLL,当运行作为服务时肯定不会在路径上.如果我尝试在没有设置PATH的情况下运行它,它会在开始加载时崩溃(并在应用程序事件日志中留下粪便).
我将在Dependency Walker(http://www.dependencywalker.com)中调出你的exe 来查看你在加载时加载的内容,并检查你的Windows事件日志以查看是否有任何提示.您可能需要在可执行文件旁边放置所需的DLL副本.
我想知道当它作为服务运行时是否可以调试它。当服务主机运行你的程序时,一定有什么东西在惊吓你的程序。也许尝试将调试器附加到 svchost.exe,至少您可以看到加载了哪些模块以及可能是哪个异常导致崩溃。
| 归档时间: |
|
| 查看次数: |
3947 次 |
| 最近记录: |