进程外COM服务器 - 无法创建文件

时间:2010-07-13 15:08:34

标签: c++ file com-server

我正在尝试从其主线程中的进程外COM服务器运行以下代码,但是没有创建任何文件。

我想知道是否有人能告诉我为什么会这样?

FILE *f = fopen("Log.txt", "w");
fputs("Tony", f);
fputs("\n", f);
fclose(f);

2 个答案:

答案 0 :(得分:2)

从权限问题来看,文件实际上已经创建但是你找不到它的几率非常好。您没有为该文件提供完整路径名(如"c:\\blah\\log.txt"),这意味着它将在COM客户端应用程序的当前工作目录中创建。保证与COM服务器所在的目录相同。

您需要指定完整路径。在Windows中,它应该是您保证对其进行写访问的目录。使用SHGetFolderPath()获取appdata文件夹的路径。或者为记录留出固定的目录名称(不推荐)。

答案 1 :(得分:0)

我认为最可能的原因是fopen因访问被拒绝错误而失败。你试过单步执行代码吗?诊断它的最佳方法是附加调试器并检查errno的值。