我有一个C ++ cli程序,它将double *值传递给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 *' 怎么会?这两个接口是一样的吗?
答案 0 :(得分:3)
您取消引用double*
,从而产生双倍。
此:
CSharpWrapperAPI ->PassValue(*value);
应该是这样的:
CSharpWrapperAPI ->PassValue(value);