C#中加载dll并调用其函数的实现方法
作者:jingxian 发布时间:2022-06-27 17:14:08
标签:C#,加载dll,调用,函数
C#编程中,调用封装dll中的函数是高频使用的。那么,如何在程序中加载dll并调用其中的函数呢?更进一步的,如何在主程序中对自己封装的dll中的函数进行调试呢?
加载dll-添加引用
添加引用的意思是让程序生成时根据配置的路径去加载相应的dll。其引用的步骤如下图所示:
解决方案->引用-> 添加引用-> 浏览-> 选择dll所在的路径->确定
导入命名空间、实例化对象、调用函数
只有导入该dll的命名空间,才能使用该空间下的类。因此,在引用了dll之后的第一步是导入命名空间;第二步才是实例化该类对象;最后才是使用类对象来调用其成员函数。下面所示的代码是调用封装好的DMC3000.dll中的初始化函数。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using nsLTDMC;
//(1)引入命名空间
using nsDMC3000;
namespace DalsaConfig
{
public partial class Form1 : Form
{
//(2)声明类对象
DMC3000 m_f1DMC3000;
public Form1()
{
//(3)实例化类对象
m_f1DMC3000 = new DMC3000();
InitializeComponent();
//(4)调用dll中的函数
bool bIniResult = m_f1DMC3000.Init();
if (true == bIniResult)
{
MessageBox.Show("Init OK");
}
else
{
MessageBox.Show("Init Failed!");
}
}
}
}
调试dll函数的步骤
前面2个基本步骤是如何调用dll中的函数,而本步骤是调试自己封装的dll的步骤。
添加现有项目
添加现有项目是指将封装好的dll项目加载到主程序中,这样,才能在调试时单步进入dll调用的函数。
设置依赖关系
依赖关系是指,规定主程序为启动项目,dll程序为依赖项目。
0
投稿
猜你喜欢
- 在实际项目开发过程中,我们经常需要对某个对象或者某个集合中的元素进行排序,常用的两种方式是实现某个接口。常见的可以实现比较功能的接口有Com
- 本文是Java IO总结系列篇的第4篇,前篇的访问地址如下:总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇总结java从
- 在 App 的开发过程中,ListView 控件是比较常用的控件之一。掌握它的用法,能帮助我们在一定程度上提高开发效率。本文将会介绍 Lis
- Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难
- WebService服务端代码public class WebServiceDemo : System.Web.Services.WebSe
- CSDN 的小伙伴们,大家好,我是沉默王二。重写(Overriding)算是 Java 中一个非常重要的概念,理解重写到底是什么对每个 Ja
- 背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和无限背包,这里主要
- 在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>、DataTa
- 以前,使用github(git)结合 IntelliJ IDEA ,可以把自己本地的测试代码,使用github网站,添加到版本管理。这样就可
- 前言我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。今天给大家分享使
- 为什么需要多线程?模型的简化,如某些程序是由多个相对独立任务的运行:图形界面的出现,输入、输出的阻塞多核CPU的更好利用异步行为的需要Jav
- 下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述:private static String[] getN
- 前言事情的起因是微服务A通过feign调用微服务B的某个接口,报了形如下的异常feign.FeignException$NotFound:
- 预览图一、xml布局<?xml version="1.0" encoding="utf-8"?
- 本文实例讲述了Jaxb2实现JavaBean与xml互转的方法。分享给大家供大家参考,具体如下:一、简介JAXB(Java Architec
- 本文实例讲述了Java通过在主循环中判断Boolean来停止线程的方法。分享给大家供大家参考,具体如下:package Threads;/*
- 在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低。由于开始时使用JPA内部的双向关联
- hbase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式
- 什么是https要说https我们得先说SSL(Secure Sockets Layer,安全套接层),这是一种为网络通信提供安全及数据完整
- 前言去年在公司参与了一个某某机场建设智能机场的一个项目,人脸登机是其中的一个功能模块,当时只是写了后台的接口,调用人脸识别设备的api,给闸