C程序可以编译成DLL吗

C程序可以编译成DLL吗,c,c#-3.0,C,C# 3.0,我遇到了这样一种情况,客户端得到了“C”程序,该程序在客户端应用程序端对列进行加密。现在,在一个支持C#的脚本组件中的数据仓库项目中也使用了同样的方法 有没有办法将这个C程序编译成dll并导入C#[或者]我们需要用C#重新编写它 谢谢如果客户机的代码已经在DLL中,您可以使用C#中的p\Invoke使用其中的所有例程。这里有一个。混合托管(c#)和非托管(c)代码并不太难,c#有一个很好的特性可以做到这一点,也可以查看托管和非托管代码的接口,然后您可以将dll编译为普通的c dll它可以编译为d

我遇到了这样一种情况,客户端得到了“C”程序,该程序在客户端应用程序端对列进行加密。现在,在一个支持C#的脚本组件中的数据仓库项目中也使用了同样的方法

有没有办法将这个C程序编译成dll并导入C#[或者]我们需要用C#重新编写它


谢谢

如果客户机的代码已经在DLL中,您可以使用C#中的p\Invoke使用其中的所有例程。这里有一个。

混合托管(c#)和非托管(c)代码并不太难,c#有一个很好的特性可以做到这一点,也可以查看托管和非托管代码的接口,然后您可以将dll编译为普通的c dll

它可以编译为dll,但您可能需要对源代码进行一些更改。看一看。要在C#中使用dll,请查看P/Invoke。这就足以让你继续下去了。

< P>而不是使用P/Unjk,我发现创建C++/CLI类库项目更容易,在那里你可以用C++代码编写托管类,其中包含C++代码。然后从C#项目中,您可以添加对类库的引用,并直接调用包装类。

是的,这是可能的

在visual studio中创建新的win32 dll项目。假设您想创建一个名为sum的C方法,并通过dll使其可用。首先创建方法:

int _stdcall sum(int x , int y)
{
return x+y;
} 
如果VS没有创建.def文件(它应该这样做),则创建一个.def文件并在该文件中写入以下内容:

LIBRARY Example
DESCRIPTION Example library for C

EXPORTS
        sum @1

这将在加载dll时创建一个名为sum available的可访问方法。现在,您必须使用DLLImport编译并在您的C#项目中使用它。

如果连C都不能编译DLL,您认为DLL是用什么编写的?