如何将双指针从 C++ 传递到 C#
How to pass a double pointer from C++ to C#
我有一个 C++ cli 程序,它向 C# 包装器传递一个双精度值。
这是我的 C++ 程序
MY_DLL_API void __cdecl PassValue(double *value,) {
CSharpWrapper^ CSharpWrapperAPI = gcnew CSharpWrapper();
CSharpWrapperAPI ->PassValue(*value);
return;
}
和我的 C# 程序
public unsafe void PassValue(double *newValue)
{ // some calcuation }
并且出现编译器错误:无法将参数 2 从 'double' 转换为 'double *'
怎么来的?两个接口一样吗?
您正在取消对 double*
的引用,从而产生一个双精度值。
这个:
CSharpWrapperAPI ->PassValue(*value);
应该是这样的:
CSharpWrapperAPI ->PassValue(value);
我有一个 C++ cli 程序,它向 C# 包装器传递一个双精度值。
这是我的 C++ 程序
MY_DLL_API void __cdecl PassValue(double *value,) {
CSharpWrapper^ CSharpWrapperAPI = gcnew CSharpWrapper();
CSharpWrapperAPI ->PassValue(*value);
return;
}
和我的 C# 程序
public unsafe void PassValue(double *newValue)
{ // some calcuation }
并且出现编译器错误:无法将参数 2 从 'double' 转换为 'double *' 怎么来的?两个接口一样吗?
您正在取消对 double*
的引用,从而产生一个双精度值。
这个:
CSharpWrapperAPI ->PassValue(*value);
应该是这样的:
CSharpWrapperAPI ->PassValue(value);