DllImport的问题,com组件和.net组件可以直接引用,可是像kernel32.dll为什么要用DllImport来引用呢?
DllImport的问题,com组件和.net组件可以直接引用,可是像kernel32.dll为什么要用DllImport来引用呢?而且,不能用对象浏览器来看他里面的方法 问题点数:20、回复次数:6Top
1 楼superpopredboy()回复于 2006-03-05 13:47:42 得分 0
顶~~~~~~~~~~~~~`Top
2 楼onlyxuyang()回复于 2006-03-05 13:50:57 得分 0
生成的代码不一样
.net组件生成的代码是MSIL,当然可以被直接读取
而COM 组件和kernel32.dll等以前的动态连接库是生成的二进制本地代码
所以必须进行平台调用
而COM组件也不是全部都可以吧
COM 组件遵循标准写的,所以.net可以用固定的机制调用
而普通的.dll二进制动态连接库因为写法没有限制
所以只能自己声明了。。。。
用.net的语言说的话
.net中所有CTS类型都素类型安全的,
而.net平台的CTS以外的类型都素不安全类型
所以你在.net中要调用以前你使用不安全类型写的动态连接库的话就必须使用不安全类的平台调用,也就素你说的DllImport,建议你查一下MSDN关于平台调用方面的文章Top
3 楼superpopredboy()回复于 2006-03-05 13:54:09 得分 0
阿,谢谢,如果一个dll又不是,.net组件又不是com组件,我如何知道它里面的有什么方法呢,我如何去掉用他呢〉?
Top
4 楼onlyxuyang()回复于 2006-03-05 13:59:56 得分 20
这个当然素不可以调用的,或者有一个工具可以知道函数名但是不知道参数列表
要是装在.dll里面的函数原型那么容易就能知道的话
软件界就乱了,那就没人破解软件了。。。直接用别人的.dll核心的功能库自己做一个还方便点。。。。。。。。。Top
5 楼onlyxuyang()回复于 2006-03-05 14:17:57 得分 0
回答了竟然不给分。。。郁闷+Top
6 楼superpopredboy()回复于 2006-03-05 14:21:10 得分 0
阿
马上给~~~我是新来的,不知道
Top




