首页 新闻 搜索 专区 学院

c#怎么调用多个c++dll

0
悬赏园豆:20 [已解决问题] 解决于 2014-09-26 18:38

问题环境:有两个c++dll,A、B,A会调用B,A里面是调用方法,B里面是加密狗的信息。我的c#程序里面只用调用A里面的方法,但调用A的时候必须同时加载B才能找到加密狗文件通过验证。

问题:

1、调用A的时候c#会自动加载B吗?

2、[DllImport("A.dll")] 这种一次只能写一个dll,如果要同时加载进入多个dll,有什么方法或思路?

问题补充:

回答:

1、在控制台窗体应用程序里 ,会自动加载B。在Web网页应用程序里,不会自动加载B。

2、DllImport方式在Web网页应用程序里不能同时加载多个有关联的DLL,在控制台窗体应用程序里,加载一个,会自动加载其他有关联的DLL。

写了篇博客:http://www.cnblogs.com/heifengwll/p/3995441.html

开山怪不怪的主页 开山怪不怪 | 小虾三级 | 园豆:544
提问于:2014-09-23 15:23
< >
分享
最佳答案
0

批量的似乎不能,你确定目录对么,[DllImport("A.dll")]这句代码所在DLL需要和A在同一个目录里

收获园豆:5
draculav | 小虾三级 |园豆:734 | 2014-09-23 16:56

所有的dll都放在了bin目录下了,在试试看看动态加载的东西

开山怪不怪 | 园豆:544 (小虾三级) | 2014-09-23 17:21
其他回答(3)
0

会自动加载的,你只要import你需要调用的dll就可以了

收获园豆:5
hailants | 园豆:750 (小虾三级) | 2014-09-23 15:51

好像没自动加载,返回来错误码表示加密狗文件没找到

支持(0) 反对(0) 开山怪不怪 | 园豆:544 (小虾三级) | 2014-09-23 16:39
0

1、通过DllImport导入外部Dll里的方法,具体的导入,参考DllImport的参数。

2、被导入的外部Dll一般来说,放在执行文件夹(web就是bin文件夹,desktop就是可执行文件的文件夹),如果dll又引用了其它的Dll(如你说的A与B的关系),也一并放在一起。

3、Dll还有一个放置的地方是System32文件夹,System32只指的是Windows系统目录下的文件夹。

收获园豆:5
519740105 | 园豆:5810 (大侠五级) | 2014-09-23 20:13
0

同一个目录,或者GAC。

收获园豆:5
Firen | 园豆:5483 (大侠五级) | 2014-09-24 12:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册