2 qq 33476861 qq_33476861 于 2016.01.20 12:17 提问

关于c#使用自己的dll的问题
c#

我自己编译的a.dll中调用了其他的b.dll,
c#中使用a.dll时候需要把b.dll也import进去吗?
所有的dll都需要放进c#工程下面吗?

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 12:19

是的,所有的dll都需要add reference。

caozhy
caozhy   Ds   Rxr 2016.01.20 12:19

默认情况下,你需要把dll添加到项目目录,不过你也可以注册到gac,那么久像.net类库那样不需要复制过来了。可以全局访问。

qq_33476861
qq_33476861 直接加一个【dllimport(“b.dll”)】吗?还是需要将a。dll中引用到的函数都列出来?
接近 2 年之前 回复
caozhy
caozhy 回复菜鸟1级: 只要用到了类型就必须引用
接近 2 年之前 回复
qq_33476861
qq_33476861 b.dll只是a.dll调用,也需要import到c#项目里面吗,c#根本没有调用b.dll的函数?
接近 2 年之前 回复
yx_zx
yx_zx   2016.01.20 13:01

不一定要引用,用Assembly.LoadFrom也可以,只要指定dll的路径就行了,assembly.GetExportedTypes方法可以获取程序集里面所有的类型,或用
assembly.CreateInstance创建想要的类型实例

yx_zx
yx_zx 参考一下这个http://www.cnblogs.com/dragonwlb/archive/2013/04/04/2999729.html
接近 2 年之前 回复
yx_zx
yx_zx 回复菜鸟1级: [DllImport("CSharpInvokeCPP.CPPDemo.dll")]     public static extern int Add(int x, int y);这像这样
接近 2 年之前 回复
yx_zx
yx_zx 回复菜鸟1级: C#怎么能直接引用C++的dll呢,要用DllImport
接近 2 年之前 回复
qq_33476861
qq_33476861 我的dll是c++写的,引用的时候就已经报错了,直接放进去也行吗?怎么做呢?
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.01.20 13:50

只要用到DLL文件,就该引用

qq_33476861
qq_33476861 请问怎么引用呢?是把a中使用的b中的函数挨着列下来吗?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!