gpt4 book ai didi

c# - C# 和 C++ 之间的文件打开模式不一致

转载 作者:行者123 更新时间:2023-11-30 17:24:17 25 4
gpt4 key购买 nike

我正在从 vc++ DLL 中导出一个函数来写入一个二进制文件。在 C++ 代码中,文件使用

打开
FILE* fp = ::_tfopen (FilePath, _T("a+b"));

我 a 使用 "a+b" 模式稍后附加文件,b 用于二进制模式。

现在我正在我的 C# 应用程序中导入此函数。当我使用正确的参数从 C# 调用这个函数时,文件被写入但不是在追加模式下。我的意思是该函数打开文件但似乎没有附加到它的内容,而是破坏了它的内容然后写入我的 C# 参数。

平台是VS2005。有什么帮助吗?

-谢谢维伦

从评论中导入

[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");

最佳答案

您的 C# 函数是什么样的?

请附上枚举

FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);

关于c# - C# 和 C++ 之间的文件打开模式不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com