首页新闻找找看学习计划

C#程序调用C++DLL向一文件写入数据的问题?

0
[待解决问题]

有一个C#服务程序需要调用C++程序集,这个C++程序集执行中会向一个文件写入数据,本来运行得好好的,没有任何问题,但是当我将这个C#程序包装成一个Windows服务发布的时候,其他一切也都正常,却有一个致命问题,当它调用的那个C++程序集向文件写入数据时,数据没有实际上写入到文件,也不报任何错误,真是要命,哪一位大神能发发慈悲,指点一下这个问题该如何解决?不胜感激!!

Patrickz10的主页 Patrickz10 | 初学一级 | 园豆:7
提问于:2016-03-08 00:58
< >
分享
所有回答(2)
0

请检查一下权限和路径, 还有DLL注册问题

XiaoFaye | 园豆:3082 (老鸟四级) | 2016-03-08 07:32

被包装成Windows服务的C#程序本身也需要向一些文件写入数据,但是它能正常运行,但是它调用的C++程序集为什么就没有权限向文件写入数据了,而且路径也没有什么特别的,DLL注册是使用NativeMethod.LoadLibrary方法,好像根本没有地方可以设置权限啊

支持(0) 反对(0) Patrickz10 | 园豆:7 (初学一级) | 2016-03-08 09:51

@Patrickz10: 

谢谢这种方式调用:

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

支持(0) 反对(0) XiaoFaye | 园豆:3082 (老鸟四级) | 2016-03-08 15:07

@XiaoFaye: 尝试了,一样的

支持(0) 反对(0) Patrickz10 | 园豆:7 (初学一级) | 2016-03-08 23:34
0

服务程序的相对路径和普通程序是不一样的,它的默认路径是 “windows/system32”。 有读取相对路径下的文件的程序可能会出错,另外,如果输出文件是相对路径的话,也可能输出到system32目录下了。

天方 | 园豆:5264 (大侠五级) | 2016-03-08 23:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册