C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr

这篇具有很好参考价值的文章主要介绍了C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有些C++项目中也用了C语言.c,用方法一就无法使用【不能使用 /clr 选项编译 C 文件】。就用方法2。

方法二:COM方式 

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言

 参考:  https://www.5axxw.com/questions/content/2ozion

 1.C# 生成dll

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言  

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

using System.Runtime.InteropServices;




namespace ClassLibrary1
{
    public class Class1
    {
        public interface IMyClass
        {
            void Initialize();
            void Dispose();
            int Add(int a, int b);
        }

        public class MyClass : IMyClass
        {
            public void Initialize()
            {

            }

            public void Dispose()
            {

            }

            public int Add(int a, int b)
            {
                return a + b;
            }
        }
    }
}

 编译正常,C# dll就完成了。

2.C++调用示例

#include <iostream>
using namespace std;

#import "../x64/Debug/ClassLibrary1.tlb"

int main()
{
	CoInitialize(NULL); // 初始化com环境
	ClassLibrary1::IMyClassPtr p(__uuidof(ClassLibrary1::MyClass));
	cout << p->Add(3, 4) << endl;

	system("pause");
	return 0;
}

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言

C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr,c#,开发语言文章来源地址https://www.toymoban.com/news/detail-630667.html

到了这里,关于C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LabVIEW于C#各自生成的DLL互相调用的方法

    1.LV调用C#生成的DLL (1)C#类库代码原型 Debug生成的DLL: LV代码: 结果显示 2.C#调用LabVIEW生成的DLL: LV源码 VS2017添加LV生成的DLL 加入命名控件,加源码 运行结果:

    2024年02月16日
    浏览(61)
  • C#调用COM接口的三种方式

    使用OLEView.exe查看本机安装的COM组件CLSID和接口Guid   COM组件的提供者没有提供CLSID等信息或信息提供不全时,可以使用OleView.exe来查看其类和接口的GUID. OLEView.exe全称是OLE-COM Object Viewer,是Microsoft SDK中包含的一个工具,可以用来查看本机安装的所有COM组件的信息,包括CLSID、

    2024年02月04日
    浏览(63)
  • VS2015项目中,MFC内存中调用DLL函数(VC6生成的示例DLL)

    本例主要讲一下,用VC6如何生成DLL,用工具WinHex取得DLL全部内容,VC2015项目加载内存中的DLL函数,并调用函数的示例。         本例中的示例代码下载,点击可以下载 1.新建项目,这里选择Win32 Dynamic-link Library,如下图:  2.选择“A simple DLL project”,然后点击完成,如下:

    2024年02月12日
    浏览(44)
  • VS2019编译生成动态链接库dll的两种方式

     dll项目的默认结构如下:  四个文件的内容因为是默认生成的,不是特别重要, 接下来就是重要的修改部分: 方法一: 修改“pch.h”和“dllmain.cpp”文件,可以参考以下博主链接,但博主的引用部分有些繁琐,文末会介绍我的引用方法,和正常引用外部库步骤是一样的。这

    2023年04月09日
    浏览(46)
  • C#调用C++ dll教程

    在使用C#开发客户端时,有时需要调用C++ dll,本篇博客来介绍C#程序如何调用C++ dll。 首先使用VS2022创建C++ dll项目,具体步骤如下: (1)选择Windows桌面向导,点击下一步, 取项目名,例如我的dll项目名是libMath (2)选择动态项目,勾选导出符号 (3)编写动态代码,代码如下

    2024年01月25日
    浏览(38)
  • 【C#-1】C#调用matlab生成的dll库

    matlab打包dll 1、matlab示例程序: 2、输入deploytool打包matlab程序,具体如下:  3、拷贝 打包成功后,将生成for_redistribution_files_only文件夹中的dll文件拷贝到C#程序lib文件夹下,若没有,新创建一个。 错误解决: 解决方法:将matlab程序改写成一个方法。 C#调用dll 1、添加引用  

    2024年02月07日
    浏览(33)
  • C++调用C# dll成功示例

    一.准备C# dll类库 。生成CSLib.dll  二、写C++应用调用  1)需要把dll复制到运行目录下。(不然会提示找不到dll System.IO.FileNotFoundException:“未能加载文件或程序集“CSLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件) 2)设置\\\"公共语言运

    2024年02月14日
    浏览(59)
  • C#调用C++ dll异常排查

    最近在做的一款程序,长时间运行总会出现莫名的问题。有时是自动关闭,有时程序报错,有时调用的dll异常…… 由于开始与C++组合作时,使用其提供的dll出现过数据读写时异常(内存操作异常),于是怀疑他们提供的dll有内存泄漏。于是想通过日志或其它方法来确认这个猜

    2024年01月21日
    浏览(51)
  • Unity——在C#中调用C++动态链接库(DLL)

    1、新建C++空项目 打开VS,新建一个C++空项目,自命名项目名称与位置。 2、配置项目属性为动态链接库 右键项目,点击属性,打开项目属性页,将常规中的配置类型改为动态库(.dll)。  3、添加.h头文件 右键头文件,点击添加—新建项,选择头文件.h,命名为DllForUnity.h,点击

    2024年02月10日
    浏览(43)
  • C#调用C++封装的SDK库(dll动态库)——下

    一、说明 上一篇我们相当于封装的是C语言风格的动态dll库,供C#来调用的。 C#调用C++封装的SDK库(dll动态库)——上 如果我们要封装的是下面的类呢?我们该怎么办?大家先思考下。  二、思路 不知道大家还记得设计模式中的单例模式吗? 我们可以采用类似的处理方式,通过

    2023年04月25日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包