一、改变窗体的图标

没有修改之前为:

修改之后为自己想要的图标:

需要在窗体Form1.cs属性里边添加icon图片文件:

二、新建cs类文件

如下图所示,新建一个类文件,我用于来调用库文件也可以来定义变量等。

在工程文件依次右键去选择,如下图所示:

三、C#调用C++生成的dll库

1、在新建的类文件中声明 命名空间using System.Runtime.InteropServices,用于访问非托管 API 的平台调用。
2、调用外部C++生成的DLL库,涉及到C++的数据类型转化为C#的数据类型。
3、直接使用DllImport外部Dll。
4、对于CallingConvention = CallingConvention.Cdecl调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace IMI_101_CanApp
{
    class CallDll
    {
        [StructLayout(LayoutKind.Sequential)]   //用于强制将成员按其出现的顺序进行顺序布局
         public struct WzCan_InitConfig
         {
            public byte BaudRate;
         }
       
        [DllImport("WzCanDll.dll", EntryPoint = "WzCan_DeviceConnect", CallingConvention = CallingConvention.Cdecl)]  //调用外部dll库 有参数传入 
        public static extern byte WzCan_DeviceConnect(WzCan_InitConfig pInitConfig);

        [DllImport("WzCanDll.dll", EntryPoint = "WzCan_CloseDeviceConnect", CallingConvention = CallingConvention.Cdecl)]  //调用外部dll库 
         public static extern bool WzCan_CloseDeviceConnect();
         
        [DllImport("WzCanDll.dll", EntryPoint = "fnWzCanDll")]  //调用外部dll库 无参数传入 
        public static extern byte fnWzCanDll();
    }
}


四、参考文档

http://blog.csdn.net/feiyingzaishi/article/details/72870247
https://www.cnblogs.com/ppchouyou/archive/2008/03/31/1131593.html
https://www.cnblogs.com/shuenjian901/p/3408514.html
http://bbs.csdn.net/topics/392056294
https://www.cnblogs.com/gosteps/p/5519896.html
http://blog.csdn.net/u011981242/article/details/52622923
http://www.xuebuyuan.com/645807.html

by 羊羊得亿
2017-12-21 ShenZhen