永发信息网

C# 怎么判断DLL被调用

答案:2  悬赏:0  手机版
解决时间 2021-02-11 18:13
  • 提问者网友:缘字诀
  • 2021-02-11 07:50
我想调用厂家给的DLL实现与开发板的CAN通信,DLL调用是成功的,我的程序能够通过DLL中的方法打开CAN卡设备和通道,但是不能发送数据,下面是我发送数据的一些代码:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CAN_DataFrame
{
public UInt32 uID
public UInt32 uTimeFlag;
public byte nSendType
public byte bRemoteFlag
public byte bExternFlag
public byte nDataLen
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] arrayData
}
const string PATH = "D:\\chongdianji_dll\\CanCmd.dll";
[DllImport(PATH, EntryPoint = "CAN_ChannelSend")]
public static extern int CAN_ChannelSend(uint dwDeviceHandle, uint dwChannel,ref CAN_DataFrame[] can_DF, UInt32 nCount)
CAN_DataFrame[] SendBuff = new CAN_DataFrame[1]
SendBuff[0] = new CAN_DataFrame()
string strSendID = "00000a0f"
string strSendData = "01 02 03 04 05 06 07 08"
SendBuff[0].nSendType = 1
SendBuff[0].bRemoteFlag = 1
SendBuff[0].nDataLen = 8
SendBuff[0].bExternFlag = 1
CAN_ChannelSend(can_DO, 0,ref SendBuff, 1)
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-02-11 08:19
飘过,我以前公司的同事会
全部回答
  • 1楼网友:鸽屿
  • 2021-02-11 08:30

[dllimport("your.dll", entrypoint = "yourfunc")]

//这里声明那个函数,注意类型转换 包括结构体什么的,都要自己在c#里面重新声明和定义

public static extern void clientdll_destory(clientdll_hdvssession hclienthandle);

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯