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);
            }
        }
    }
  • 相关阅读:
    在 Spring 中使用 Quartz
    Quartz 快速进阶
    任务调度概述
    Spring Boot 2.x 整合 Mybatis 3.x
    pwd函数实现
    07-图4 哈利·波特的考试 (25 分)
    06-图3 六度空间 (30 分)
    linux中的目录
    Linux中的文件
    06-图2 Saving James Bond
  • 原文地址:https://www.cnblogs.com/bent/p/4208726.html
Copyright © 2011-2022 走看看