c#今天遇到一个非常奇怪的有关问题,小弟我原来传两个参数给dll,后来dll源码改成3个参数用c#传到的参赛如何传都不对
c#今天遇到一个非常奇怪的问题,我原来传两个参数给dll,后来dll源码改成3个参数用c#传到的参赛怎么传都不对
上面传到下面来就不正确了,上面的第一个是下面的第一个,下面的第二个是0,上面的第二个是下面的第3个,上面的3不知道跑哪去了,编译都能通过
注释下面的编译就通不过
求解,哪里出问题了,我只是多加了参数就这样了
------解决方案--------------------
C++ 里面的 long 参数,在 C# 里面是 int.
[DllImport("JsdDecoder.dll",CallingConvention=CallingConvention.Cdecl)]
public static extern long JsdDtClose(long m_Login, long m_RealHand, int nDeviceType);
long lLogID = 1;
long lPlayHandle = 2;
private void btnStop_Click(object sender, EventArgs e)
{
JsdDecoder.JsdDtClose((long)lLogID, (long)lPlayHandle, 3);
}
上面传到下面来就不正确了,上面的第一个是下面的第一个,下面的第二个是0,上面的第二个是下面的第3个,上面的3不知道跑哪去了,编译都能通过
extern "C" _declspec(dllexport) long JsdDtClose(long m_Login,long m_RealHand,int nDeviceType )
{
char sUrl[256];
switch(nDeviceType)
{}
注释下面的编译就通不过
extern "C" _declspec(dllexport) long JsdDtClose(long m_Login,long m_RealHand,int nDeviceType );
求解,哪里出问题了,我只是多加了参数就这样了
------解决方案--------------------
C++ 里面的 long 参数,在 C# 里面是 int.