我从vc ++ DLL导出一个函数来写入二进制文件。在C ++代码中,使用
打开文件FILE* fp = ::_tfopen (FilePath, _T("a+b"));
我使用"a+b"
模式稍后附加文件而b是二进制模式。
现在我在C#应用程序中导入此函数。当我使用正确的参数从C#调用此函数时,文件被写入但不是附加模式。我的意思是该函数打开文件,但似乎没有附加到其内容,而是破坏其内容,然后写出我的C#参数。
平台是VS2005。有什么帮助吗?
- 谢谢 Viren
从评论中导入
[DllImport("NameOfTheDLL.dll", CharSet = CharSet.Ansi)]
public static extern int function_name(IntPtr ptr,
[MarshalAs(UnmanagedType.LPWStr)] string FilePath);
以下是对该功能的调用:
IntPtr ptr = some_Init_function();
function_name(handle, "C:\\FileName");
答案 0 :(得分:2)
你的C#功能如何?
请附上枚举
FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);
答案 1 :(得分:0)
当没有导入C#时,C ++函数是否按预期工作?问题可能在于DLL本身的代码。