zoukankan      html  css  js  c++  java
  • C#调用C++库(dll)的函数

    C++函数定义

    extern "C" __declspec(dllexport) void ThundbirdPhaseLocalFolder(const string* localFolderPaths,const string* zipFolders, bool (*isProcess)())
    {
        const char* localFolderPath = localFolderPaths->c_str();
        const char* zipFolder = zipFolders->c_str();    
    
    }

    C#函数定义

    namespace TestThunderbirdZipperCSharp
    {
        class CPPDLL
        {
            [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            public delegate bool IsProcess();
    
            [DllImport("ThunderbirdLocalFolderZipper.dll")]
            public static extern void ThundbirdPhaseLocalFolder([MarshalAs(UnmanagedType.LPWStr)]string localFolderPath, [MarshalAs(UnmanagedType.LPWStr)]string zipFolder, [MarshalAs(UnmanagedType.FunctionPtr)]  IsProcess isProcess);
        }
    }

    C#调用

    namespace TestThunderbirdZipperCSharp
    {
        class Program
        {
            static bool flag = true;
    
            static bool callback()
            {
                return flag;
            }
    
            static void Main(string[] args)
            {
                string localFolderPath = "";
                string zipFolder = "";
    
    
                CPPDLL.ThundbirdPhaseLocalFolder(localFolderPath, zipFolder, callback);
            }
        }
    }
  • 相关阅读:
    小学四则运算
    浏览后感想
    组员名单
    软件工程--第五次作业--(1、2、3、4(1))
    第四次作业
    《软件工程》第二次作业
    现代软件工程 第一次作业
    软件工程问题
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/bent/p/4208726.html
Copyright © 2011-2022 走看看