c# - 如何将以下 c++ 方法编组为 c#
问题描述
我们需要在 c# 中导入原生 c## 方法,但我们不知道如何正确编组代码。尤其是我们不知道要使用哪些数据类型。
dll 导入中使用的数据类型是否正确?
VDLL32 LS_STATUS_CODE VMSWINAPI MyMethodToImport(
unsigned char LSFAR *server_name, /* IN */
VLSservInfo LSFAR *srv_info, /* out */
unsigned char LSFAR *unused1, /*reserved*/
unsigned long LSFAR *unused2 /*reserved*/
);
对于 C#,我们使用了以下内容:
[DllImport(LibraryName, CallingConvention = CallingConvention.Cdecl, EntryPoint = "MyMethodToImport", CharSet = CharSet.Ansi)]
public static extern int MyMethodToImport(ref VLSservInfo servInfo, IntPtr serverName);
当前结果为空,因此在本机 dll 中未正确解释 serverName 我期望一个非空的 ServInfo 对象,但实际输出为空。
解决方案
推荐阅读
- flutter - 如何在颤动的textformfield边界内显示标签和错误消息?
- php - Twilio 不调用我的 TwiML 指令 url
- sql - Oracle SQL 性能问题 - 如何在找到第一个实例时使查询停止运行并返回
- python - AttributeError:遵循 boto3 快速入门时,模块“botocore”没有属性“会话”
- python - Pandas:如何在索引之间获取行?
- mongodb - mongo db 使用集合中的值进行聚合匹配
- c# - 从字符串中间查找特定文本和对应的电子邮件 ID,并将其存储到数据表或 C# 中的列表中
- docker - 如何将 elasticsearch 部署到 kubernete?
- pyqt - 有没有一种优雅的方法可以在 PyQt 中删除 QScrollArea 中的小部件?
- windows - 如何使用 PowerShell 在第二台显示器上打开程序?