我得到了客户端得到'C'程序,在客户端应用程序对列进行加密的情况。现在,在支持C#的脚本组件之一中,现在可以在DataWareHousing项目中使用它。可以将C程序编译为DLL
有没有一种方法可以将C程序编译为dll并导入到C#中[或]我们是否需要在C#中重新编写此代码?
感谢
我得到了客户端得到'C'程序,在客户端应用程序对列进行加密的情况。现在,在支持C#的脚本组件之一中,现在可以在DataWareHousing项目中使用它。可以将C程序编译为DLL
有没有一种方法可以将C程序编译为dll并导入到C#中[或]我们是否需要在C#中重新编写此代码?
感谢
如果客户端的代码已经在DLL中,你可以在C#中,使用P \调用使用所有的程序从它。这是一个tutorial。
混合托管(c#)和非托管(c)代码并不太困难,C#有一个很好的功能叫做pinvoke来做到这一点,在接口托管和非托管代码上也检查出this tutorial,那么你可以编译dll作为一个正常的C DLL
它可以编译为一个DLL,但你可能需要对源代码进行一些更改。看看this tutorial。并在C#中使用你的DLL检出P/Invoke here。这应该足以让你走。
而不是使用P/Invoke,我发现创建C++/CLI类库项目更容易,您可以在C++代码中编写托管类来包装C代码。然后从C#项目中,您可以添加对类库的引用,并直接调用包装类。
是的,这是可能的。
在visual studio中创建一个新的win32 dll项目。比方说,你想创建一个名为sum的C方法,并通过DLL提供。首先,创建方法:
int _stdcall sum(int x , int y)
{
return x+y;
}
如果VS didnt创建一个DEF文件(它应该这样做),然后创建一个.DEF文件,并写入该文件中的以下内容:
LIBRARY Example
DESCRIPTION Example library for C
EXPORTS
sum @1
这将在加载dll时创建一个可用的可用方法sum。现在,您必须在使用DLLImport的C#项目中进行编译和使用。
如果连C都不能编译它们,你认为怎么写DLL? – Blindy 2010-08-10 06:54:24