C#에서 C++ 함수를 호출하고 있습니다. C# struct to C++ 마샬링 문제
이
은 ++ C 펑션 헤더이다int src_simple (SRC_DATA *data, int converter_type, int channels) ;
그리고 이것은 equivilent의 C# 1 함수 :
typedef struct
{ float *data_in, *data_out ;
long input_frames, output_frames ;
long input_frames_used, output_frames_gen ;
int end_of_input ;
double src_ratio ;
} SRC_DATA ;
:
[DllImport("libsamplerate-0.dll")]
public static extern int src_simple(ref SRC_DATA sd, int converter_type, int channels);
이것은 ++ C에서 SRC_DATA 구조시킨 후 C에서 #
이것은 내가 정의한 C# 구조체입니다.
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SRC_DATA
{
public IntPtr data_in, data_out;
public long input_frames, output_frames;
public long input_frames_used, output_frames_gen;
public int end_of_input;
public double src_ratio;
}
큰 문제는 마지막 매개 변수 src_ratio가 C++ 함수에 올바르게 전달되지 않는다는 것입니다 (0 또는 무언가가 잘못된 것으로 간주됩니다).
내 선언이 맞습니까?
고마워요.
당신이 옳았습니다, 꾸러미 = 1은 실수였습니다. 나는 단지 그것이 기본값을 사용하도록했습니다 :) – Roey