zoukankan      html  css  js  c++  java
  • C++ Call C# COM

    1、C# COM:

    using System;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
    
    namespace MyInterop
    {
        /// <summary>
        /// Summary description for Class1.
        /// </summary>
        /// 
       [Guid("CE8B0E97-2D79-442B-8BA5-251E6ADB8C64")]
        public interface IMyDotNetInterface
        {
            void ShowDialog();
        }
    
        [ClassInterface(ClassInterfaceType.None)]
        [Guid("4B1E3C7C-A85C-4338-915F-3789B99B7F6D")]
        public class MyDotNetClass : IMyDotNetInterface
        {
            public void ShowDialog()
            {
                MessageBox.Show("I am a  Managed DotNET C# COM Object Dialog");
            }
        }
    }

    2、C++ call

    // Cplusplus_console_call_com.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <objbase.h>
    #import "MyInterop.tlb" named_guids raw_interfaces_only
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        CoInitialize(NULL);
        MyInterop::IMyDotNetInterfacePtr pDotNetCOMPtr;
    
        // e.g. CreateInstance (<namespace::CLSID_<ClassName>)
        HRESULT hRes = pDotNetCOMPtr.CreateInstance(MyInterop::CLSID_MyDotNetClass);
        if (hRes == S_OK)
        {
            pDotNetCOMPtr->ShowDialog();
        }
    
        CoUninitialize();
        return 0;
    }

  • 相关阅读:
    IDEA添加注释模板
    Docker安装Mysql
    Linux使用
    Linux使用
    Spring Cloud入门 (5)
    在IDEA中将SpringBoot项目打包成jar包
    Linux使用
    Linux使用
    Linux使用- 虚拟机安装 Linux
    Spring Cloud入门 (4)
  • 原文地址:https://www.cnblogs.com/jshchg/p/12900598.html
Copyright © 2011-2022 走看看