调用别的类里的extern 方法

cs1438250 2015-12-25 09:44:20
在类a里DllImport了 vc写的dll。有很多方法是 static extern
public System.IntPtr hDMTDll;

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string dllPath);

在类b里 实例化了a,然后想调用LoadLibrary这个函数。。却做不到。
该如何写好,还是只能在类b里引用dll才能使用。
...全文
245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs1438250 2015-12-25
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
DllImport会自动载入dll的,一般不需要你用LoadLibrary去显式载入,况且你调多少次它也只会被载入一次
那像我写成a的构造 析构函数里 实例化a,释放a,就等于调用了。可不可以,有什么弊端吗?
  • 打赏
  • 举报
回复
填上public, 在B中,类A.LoadLibrary() 不是实例a.
  • 打赏
  • 举报
回复
DllImport会自动载入dll的,一般不需要你用LoadLibrary去显式载入,况且你调多少次它也只会被载入一次
cs1438250 2015-12-25
  • 打赏
  • 举报
回复
引用 1 楼 crystal_lz 的回复:
修饰符 public 直接a.LoadLibrary 就行了
刚才填上public,不让调用。 因为在a里是 extern的。
cs1438250 2015-12-25
  • 打赏
  • 举报
回复
引用 1 楼 crystal_lz 的回复:
修饰符 public 直接a.LoadLibrary 就行了
好像不行。 我把b要调用a的方法和一些操作。写到a的构造器里了。 实例化a的时候,直接就调用了。
crystal_lz 2015-12-25
  • 打赏
  • 举报
回复
修饰符 public 直接a.LoadLibrary 就行了
cs1438250 2015-12-25
  • 打赏
  • 举报
回复
引用 7 楼 shingoscar 的回复:
[quote=引用 3 楼 cs1438250 的回复:] [quote=引用 1 楼 crystal_lz 的回复:] 修饰符 public 直接a.LoadLibrary 就行了
刚才填上public,不让调用。 因为在a里是 extern的。[/quote] A.LoadLibrary 不懂static么?[/quote] 看成实例化.了。 写构造器和析构里。 然后在b里实例化,和在b里调用。各有什么弊端呢
Poopaye 2015-12-25
  • 打赏
  • 举报
回复
引用 3 楼 cs1438250 的回复:
[quote=引用 1 楼 crystal_lz 的回复:] 修饰符 public 直接a.LoadLibrary 就行了
刚才填上public,不让调用。 因为在a里是 extern的。[/quote] A.LoadLibrary 不懂static么?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧