1.C#配置

(1)类库



(2)COM互操作打勾



(3)代码中类必须要有无参构造函数,否则不会注册成功!!!

using System;
using System.Runtime.InteropServices; namespace MyLibrary
{ [ComVisible(true)] // 确保类和成员在COM互操作中可见
[Guid("12345678-1234-1234-1234-1234567890AB")] // 用于标识COM组件的GUID
public class MyComponent
{
public string GetMessage()
{
return "Hello from C#!";
} public int AddNumbers(int a, int b)
{
return a + b;
}
public Point AddPoints(Point a,Point b)
{
Point p = new Point();
p.x = a.x + b.x;
p.y = a.y + b.y;
return p;
}
} [ComVisible(true)]
[Guid("B479D2EB-F2D5-4EC9-B83B-CB007966E0B0")]
public class Point
{
public int x;
public int y; }
[ComVisible(true)]
[Guid("B481D2EB-F2D5-4EC9-B83B-CB007966E0B0")]
public class Testtt
{ }
[ComVisible(true)]
[Guid("B461D2EB-F2D5-4EC9-B83B-CB007966E0B0")]
public class Point2
{ public int x; public int y;
public Point2()//必须要有无参构造函数
{ }
public Point2(int x, int y)
{
this.x = x;
this.y = y;
}
}
[ComVisible(true)]
[Guid("B451D2EB-F2D5-4EC9-B83B-CB007966E0B0")]
public class Point3//注册失败,因为没有无参构造函数
{ public int x; public int y; public Point3(int x, int y)
{
this.x = x;
this.y = y;
}
}
}

(4)用管理员的方式对类库重生成!

(5)在注册表中查看,以上类是否注册成功,win+R,regedit,导航到以下路径HKEY_CLASSES_ROOT\CLSID:



可以发现,正好是C#代码中的GUID。

(6)python代码:



发现调用成功。

(7)拷贝到其他电脑上需要做的事:

注册COM组件:在目标电脑上,使用regsvr32命令注册COM组件。打开命令提示符或PowerShell,并执行以下命令:

regsvr32 path\to\MyLibrary.dll

其中,path\to\MyLibrary.dll是你在目标电脑上放置MyLibrary.dll文件的路径。这将确保COM组件在目标电脑上正确注册。

需要注意的是,如果目标电脑的操作系统架构与你开发时使用的不同(例如,32位与64位之间的转换),则还需要确保使用相应架构的组件和设置。

通过COM,用Python调用C#库的更多相关文章

  1. Python调用C库

    Python调用C库 Python可以利用ctypes库很方便地调用C的库函数. C库例程: # file: a.c int sum(int a, int b){   int t = 0;   int ...

  2. 使用python调用zxing库生成二维码图片

    (1)     安装Jpype 用python调用jar包须要安装jpype扩展,在Ubuntu上能够直接使用apt-get安装jpype扩展 $ sudo apt-get install pytho ...

  3. 一个简单的C共享库的创建及Python调用此库的方法

    /********************************************************************* * Author  : Samson * Date    ...

  4. python调用Opencv库和dlib库

    python是一门胶水语言,可以调用C++编译好的dll库 python调用opencv-imggui.dll文件 https://www.cnblogs.com/zhangxian/articles ...

  5. 使用Python调用动态库

    我个人在日常使用电脑时,经常需要使用Google,于是就要切换代理,基本上是一会儿切换为代理,一会儿切换成直连,老是打开internet 选项去设置,很不方便,于是我萌生了一个想法: 做一个开关,我想 ...

  6. python调用C库的方法

    主要介绍两种,一种是python的标准库内置的ctype,另一种是第三方的pybind11. 除此之外,还有其他的方案,例如,CFFI.Cython等等. 一.python的标准库ctype

  7. python调用opencv库教程

    OpenCV安装pip install --upgrade setuptoolspip install numpy Matplotlibpip install opencv-python OpenCV ...

  8. python 调用第三方库压缩png或者转换成webp

    因为工作需要去研究了下png的压缩,发现转换成webp可以小很多,但是webp在手机上的解码速度比png的解码速度慢很多.出于进几年手机设备的处理器的性能也不错了,所以准备两套方案. 在网上搜索了一些 ...

  9. [Python] Python 调用 C 共享库

    Linux/Unix 平台下共享库(Shared Library)文件后缀 .so:在 Windows 平台称为动态链接库(Dynamic Link Library),文件名后缀为 .dll. 利用 ...

  10. Python调用C++

    /***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include <stdio.h> #include <stdlib.h> ...

随机推荐

  1. 洋葱学园:开启高效学习之旅的宝藏 APP 40天会员5元到手价

    洋葱学园是一款在在线教育领域表现出色的教学 APP ,下面为您详细介绍它的特点以及推荐理由. 丰富的学科覆盖: 洋葱学园涵盖了从小学到高中的全学科课程,包括数学.语文.英语.物理.化学等.无论您处于哪 ...

  2. Nginx - [02] 安装部署&配置

    官网下载地址:http://nginx.org/en/download.html 001 || 安装[windows] 解压之后,在命令提示符窗口启动nginx.exe 在浏览器访问80端口:loca ...

  3. C++基础练习案例 - 模拟时钟系统 [DOS]

    大学时期初学C++,做了些案例练习,想着整理一下,供自己和网友翻阅参考,谢谢支持!有个[模拟时钟系统]做的还可以. [PS]存在一些小问题,如编写习惯等,文末有简单小结,请自行辨析.算是提供不良模板, ...

  4. ppt 文字 +图 样式 设计

    1. 设计前 设计后 图 +文字排版 图多 字少

  5. 自动化平台-环境搭建2-cmd 下mysql 卸载命令

    "" net stop mysql sc delete mysql rd /s /q "C:\Program Files\MySQL" rd /s /q &qu ...

  6. java web 传输视频流代码锦集

    方案一 //path为本地文件路劲 public void play(String path, HttpServletRequest request, HttpServletResponse resp ...

  7. MAMP PRO教程

    简单使用 第一步 创建新主机,按主机表左下角的"+"按钮. 第二步 配置域名和项目地址 第三步 选择你要使用的web服务器 第四步 配置URL重写规则 第五步 检查端口号 第六步 ...

  8. 项目管理协作工具对比:PingCode vs Leangoo

    多语言适配能力 在全球化协作场景下,多语言支持成为跨国团队的硬性指标.PingCode目前仅支持中文界面,对于涉及多国语言协作的团队存在使用局限.对比Leangoo提供中英文双语界面切换功能,可满足基 ...

  9. 使用AOP技术实现接口验签

    一.背景 在给第三方提供接口时,我们需要对接口进行验签.具体来说,当外部系统调用我们的接口时,请求中需要携带一个签名,我们接收到请求后,会解析数据并校验签名是否正确,以确保请求的合法性和安全性. 为了 ...

  10. Math类、System类--java进阶day05

    1.Math类 Math类里所有方法都被static修饰,说明它是一个工具类,不需要创建对象,直接类名调用 2.Math方法展示 . 3.System类 SYstem方法展示 1.currentTim ...