我的DLL的加载为:
[DllImport("TerAccDll.dll", EntryPoint="ExpandData",CharSet=CharSet.Auto,CallingConvention=CallingConvention.ThisCall)] public static extern int ExpandData (int dType,char* pData,ref RecData pRecData);结构体为:
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct RecData
{
public string RecType;
public string CardNo;
public DateTime RecTime;
public float Fare;
public float Balance;
public int CardType;
public int MealType;
public string OperNo;
}请问怎么初始化结构体RecData 使之能够作为参数 传进ExpandData函数中 啊?
请指教
[DllImport("TerAccDll.dll", EntryPoint="ExpandData",CharSet=CharSet.Auto,CallingConvention=CallingConvention.ThisCall)] public static extern int ExpandData (int dType,char* pData,ref RecData pRecData);结构体为:
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct RecData
{
public string RecType;
public string CardNo;
public DateTime RecTime;
public float Fare;
public float Balance;
public int CardType;
public int MealType;
public string OperNo;
}请问怎么初始化结构体RecData 使之能够作为参数 传进ExpandData函数中 啊?
请指教
如下这样?
RecData myRecData = new RecData();
myRecData.RecType = "test";
……
中的属性设置熟悉吗?
如果参数里有指针变量 必须设置CallingConvention=CallingConvention.ThisCall,否则参数传递会出错。
这回参数里有结构体 原来的这些设置 又导致参数到DLL函数里的值发生了变化。这会肯定又是这些设置的问题。
请问 参数里有结构体 结构体指针时[DllImport("TerAccDll.dll", EntryPoint="ExpandData",CharSet=CharSet.Auto,CallingConvention=CallingConvention.ThisCall)] public static extern int ExpandData (int dType,char* pData,ref RecData pRecData);
里的这些设置应该怎么样啊?