首页 > 解决方案 > 称为 DLL 的 C++ Windows 服务程序无法正常工作

问题描述

我写了一个运行在Windows服务上的websocket服务端程序,根据项目需要,调用了一个DLL。这个DLL需要读取我的电脑在我的文档下的一个文件。但是,名为DLL的windows服务程序可以成功,但是DLL无法读取我的文档下的文件。当服务器不作为windows服务运行时,DLL可以成功读取我的文档下的文件。我好郁闷,不知道为什么。谁能帮帮我。谢谢

标签: c++windowsservice

解决方案


当多个用户使用同一台 PC 时,每个普通用户都有一个My Document目录,并且无法访问其他用户的My Document. 当您运行服务时,它默认作为本地系统本地服务运行,它们是限制用户,并且无权访问您的My Document目录。

您必须思考:该服务如何从您 PC 中的所有其他用户中选择应该从中获取文件的用户?

简单的解决方案是以您的用户身份运行服务。您可以通过打开服务属性(在服务上,右键单击并选择属性,或双击),选择登录选项卡,然后将帐户用户名和密码填入您的用户名和密码来手动尝试。

一个真正的解决方案是将文件放在一个固定的位置,例如%LocalAppData%\AppName,不依赖于任何用户。


推荐阅读