C#之改变窗体icon图标、新建类文件、调用dll库

本文介绍如何在C#中调用C++生成的DLL库,包括声明命名空间、数据类型转换及使用DllImport调用DLL的具体实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、改变窗体的图标

没有修改之前为:
1100486-20171220192601100-105738186.png
修改之后为自己想要的图标:
1100486-20171220192715787-1232442791.png
需要在窗体Form1.cs属性里边添加icon图片文件:
1100486-20171220192821412-1913417494.png

二、新建cs类文件

如下图所示,新建一个类文件,我用于来调用库文件也可以来定义变量等。
1100486-20171220192907506-627734885.png
在工程文件依次右键去选择,如下图所示:
1100486-20171220193241959-1424745498.png

三、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.youkuaiyun.com/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.youkuaiyun.com/topics/392056294
https://www.cnblogs.com/gosteps/p/5519896.html
http://blog.youkuaiyun.com/u011981242/article/details/52622923
http://www.xuebuyuan.com/645807.html

by 羊羊得亿
2017-12-21 ShenZhen

转载于:https://www.cnblogs.com/yangxuli/p/8075484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值