首先编写C++代码,

创建一个C++空项目,命名为cinterop。修改项目的配置类型为动态链接库(.dll)。

添加一个头文件CInteropDLL.h,内容如下:

#define CINTEROPDLL_API __declspec(dllexport)
extern "C" {
    void CINTEROPDLL_API HelloWorld();
}

再添加一个代码文件CInteropDLL.cpp,内容如下:

#include <stdio.h>
#include "CInteropDLL.h"

void CINTEROPDLL_API HelloWorld()
{
    printf("Hello C world invoked by F#!\n");
}

 编译项目,生成cinterop.dll文件。

创建一个F#控制台应用程序项目,名称任意。保存项目,以获得目录。然后将cinterop.dll文件复制到.exe文件所在的目录。

代码如下:

open System.Runtime.InteropServices

module CInterop =
    [<DllImport("cinterop", CallingConvention = CallingConvention.Cdecl)>]
    extern void HelloWorld()

CInterop.HelloWorld()
System.Console.ReadLine() |> ignore

编译运行,Ok!