关于C#调用dll的问题
别人给我的一个DLL文件,是用C做的,我想调用这个dll,我把这个文件放在system32下,是不是可以直接在程序中调用啊,函数声明如下:// 参数说明:
// lpsMeterNum 传入表号
// lpsFactoryCode 传入厂家编号
// nChannel 通道号
// lpsType 集中器类型
// pMeterData 表数据
// 返回值: 操作成功返0,失败返回相应错误码
DLLEXPORT int ReadMeterData(LPTSTR lpsMeterNum, LPTSTR lpsFactoryCode, int nChannel, LPTSTR lpsType, lpMeterData pMeterData);
/**
* 抄表获取数据的结构
**/
typedef struct tagMETERDATA
{
float m_fSumCold, //累计冷量
m_fCurHeat, //当前热量
m_fHeatPower, //热功率
m_fFlowV, //流速
m_fSumFlow, //累计流量
m_fSupWaterT, //供水温度
m_fBackWaterT; //回水温度
int m_nRunTime; //运行时间
CString m_strMeterTime; //表时间
}MeterData, *lpMeterData;
以下为我自己编写的C#代码:
程序代码:[DllImport(".//corma.dll", EntryPoint = "ReadMeterData")]
public static extern int ReadMeterData(string MeterNum, string FactoryCode, int Channel, string Type,lpmeterdata a);
private SerialPort comm = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string MeterNum = "12345678";
string FactoryCode = "1";
int Channel = 1;
string Type = "S型";
float SumCold, CurHeat, HeatPower, FlowV, SumFlow, SupWaterT, BackWaterT;
int RunTime;
string MeterTime;
lpmeterdata b=new lpmeterdata();
int result=ReadMeterData(MeterNum,FactoryCode,Channel,Type,b);
if (result == 0)
{
MessageBox.Show("抄表成功");
}
else
{
MessageBox.Show("抄表失败");
}可是我断点查看的时候,result的值为1,我不知道是不是我写的哪里有问题?请各位大大帮忙看下




