我有一个用C语言编写的遗留应用程序,我想逐步将一些代码移植到C#。但在重写所有内容之前,我需要先编写几个用C#编写的组件,这些组件将从C中使用。
extern "C" __declspec( dllexport ) int MyFunc(long parm1);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSLibrary
{
static public class Math
{
static public int Add(int a, int b)
{
int c = a + b;
return c;
}
}
}
Cpp/C++ 项目 CPPCLibrary.h(使用 C++/CLI 选项编译,并具有项目依赖性)
#pragma once
using namespace System;
extern "C" __declspec( dllexport ) int MathAdd(int a, int b)
{
return CSLibrary::Math::Add(a, b);
}
C 项目 CTest.c(编译为 C 代码)
#include "stdafx.h"
#pragma comment(lib, "../Debug/CPPCLILibrary.lib")
extern __declspec( dllimport ) int MathAdd(int a, int b);
int _tmain(int argc, _TCHAR* argv[])
{
int answer = MathAdd(10, 32);
_tprintf(_T("%d\n"), answer);
return 0;
}