c# - 如何编码二维 TCHAR 数组?

标签 c# c++

我有一个 DLL 函数,可以将文件转换为另一种格式。 该函数生成多个文件作为输出。 因此,它用输出文件的路径填充第二个参数。

C++函数定义如下:

int Convert(LPTSTR lpSource, TCHAR outputFileName[][MAX_PATH]);

如何混搭第二个参数,以便我的 C# 应用程序可以正确接收输出文件路径?

[DllImport("Convert.dll")]
private static extern int Convert(
  [MarshalAs(UnmanagedType.LPTStr)] string lpszSource,
  ????
);

提前致谢。

最佳答案

我会使用 C++/CLI(它非常擅长在 native C/C++ 代码和托管代码之间构建桥接层)使事情变得更简单。

基本上,您可以编写一个薄的 C++/CLI 层,在其主体中公开调用 native 函数的方法,然后将返回的 native 字符串复制到 gcnew 中。 -ly 创建了 array<String^> ,并将其返回给 C# 托管调用方。

关于c# - 如何编码二维 TCHAR 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17143419/

相关文章:

c++ - 从C++中的链表中删除最后一个结束节点

c# - 切换到 Google Safeframe 广告时出现 JSON 解析错误

C# winform html 编辑器 - 所见即所得

c++ - DirectWrite 对齐文本中心

c++ - 这个 `const char*` 的断言保证是真的吗?

指向对象的指针数组的 C++ 复制构造函数

c# - 使用 SQL 和 C# 检查数字是否在某个范围内

c# - Inno Setup - 具有依赖项的外部 .NET DLL

c# - 使用 CSS 从 HTML 在 iTextSharp 中呈现 PDF

c++ - 如果未使用的函数参数是指向函数的指针,是否需要为其实际参数定义?