社区
VB
帖子详情
关于VB.net调用非托管代码的问题
老朱有话说
2007-07-20 10:34:59
有一个程序是用BCB编写的dll,在VB.net中用dllimport使用该dll,提示无法加载此dll,到不到指定的模块,但调用windows/system32下的dll就没有问题?有谁知道如何解决?
不要对我说要注册啊,因为我的这个dll不是com组件!里面没有什么复杂的方法,就是一个简单的加法!
...全文
1036
11
打赏
收藏
关于VB.net调用非托管代码的问题
有一个程序是用BCB编写的dll,在VB.net中用dllimport使用该dll,提示无法加载此dll,到不到指定的模块,但调用windows/system32下的dll就没有问题?有谁知道如何解决? 不要对我说要注册啊,因为我的这个dll不是com组件!里面没有什么复杂的方法,就是一个简单的加法!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
老朱有话说
2007-07-25
打赏
举报
回复
请注意,我说的dll不是.net类库,是个动态库或静态库,要是.net库,哪有那么麻烦!另外,用工具查看时主要是主注意导入表,因为,它里面包含了你调用的系统库,如果你系统没有安装这个库的话,会提示你找不到模块,但这并不是真正的错误所在!
水哥阿乐
2007-07-25
打赏
举报
回复
没有什么很困难的,如果是.net库,直接引用,imports直接可以正常使用.
另外就是如楼主所说可以用DLL查看工具先查看,有很多种方法,vb05,vb6,PEiD等查看工具先了解情况.直接用API声明方式调用.
老朱有话说
2007-07-24
打赏
举报
回复
自己的最后总结
经过自己的研究,现在已全部解决了!
不管是系统的dll,还是自己写的dll(不管是vc,bc写的),都可以自由调用了!
当然,所有的调用声明都需要重新按照VB。net定义的类型重新编写!另外,特别注意的是,需要用我提供的工具查看dll的引入表和导出表,尤其是导入表,当你的dll里附带别的dll时,如果你的系统里没有相应的dll,就会出错,提示找不到你的dll模块,其实,是因为你的dll包含了别的dll,所以,用那个工具可以看出都包含了什么dll,我就是因为没有包含vc6的两个系统dll就搞的我很狼狈,以为是自己的dll问题,其实没有问题!
对调用有什么不明白的问题,可以和我直接联系!
我的目标是,VB牛重出江湖了!
老朱有话说
2007-07-23
打赏
举报
回复
神中冲,在类库中怎么用我的dll啊?
snto
2007-07-23
打赏
举报
回复
就是先新建一个Windows应用程序项目,然后在文件菜单“添加”->“新建项目”,然后选“类库”就可以了,好像在vs中叫解决方案吧,可以包含多个项目。
老朱有话说
2007-07-23
打赏
举报
回复
能讲讲怎么组成符合工程吗?我自己的dll的名字是"uos.dll",这个是不能注册的,因为不是类库!
老朱有话说
2007-07-23
打赏
举报
回复
还是没有明白,我的问题,但还是要谢谢你!
我的dll是VC写的,不可能为了写类库,要在VB.NET重写!否则,谈不上调用,因为,都重新做了!
snto
2007-07-23
打赏
举报
回复
什么叫“在类库中怎么用我的dll啊?”,我的意思你直接把那些函数啊、方法啊、类啊,写进类库中,类库就是通常说的dll,为exe项目添加类库引用的方法是:在exe项目的项目菜单找到“XXX属性”,然后在“引用”选项卡中找到“添加”按钮,选择“引用”,在新出来的“添加引用”对话框的“项目”选项卡中找到你的类库就行了(前提先编译类库项目),然后在exe项目中想使用类库的窗体或者类里引入命名空间如:Imports ClassLibrary1就可以了
southpig
2007-07-22
打赏
举报
回复
接分来了
snto
2007-07-22
打赏
举报
回复
呵呵,不错,谢谢分享,我一般是原来的exe项目上建个新的类库项目,组成复合工程,然后在exe里直接引用类库(当然,编译后的类库要和exe在一起的)
老朱有话说
2007-07-22
打赏
举报
回复
自己搞定!
网上有很多解决方案,大多数并没有真正经过思考,只是到处乱抄!
解决的办法:
1)系统级的dll,在VB.NET中都可以调用,没有任何问题!
2)调用自己编写的Dll比较麻烦,主要和编写语言有关,VC/VC++写的dll需要改写,重新编译!这里有很多地方需要注意,一个是GUI的DLL,一个是进程的Dll,一个是第三方的DLL,前一个和系统级调用是一样的,但我没有成功,原因,可能是VC++写的DLL编译有错,后两个没试过,不知是否可以成功调用。
3)第三方的Dll,如:unrar.dll,这些应该调用没有问题
特别注意的是,调用的时候,你的Dll可能要放在工程文件夹中或着是debug目录中,但不一定,因为我的两个地方都有,有成功调用的也有不能调用的!
另外,看dll的工具,请使用PEiD 汉化版或VS 2005里面的dumpbin,他们都可以看到相关的入口信息和出口信息!
VB.NET
调用
Windows API 使用方法
Windows API
调用
过去曾是Visual Basic编程中很重要的一部分,但在 Visual Basic .NET 几乎不必要了。只要有可能,应该使用 .NET Framework 中的
托管
代码
而不是Windows API
调用
来执行任务。本演练提供有关那些一定要使用Windows API 的场合的信息
Excel专业开发(第2版).随书案例的源
代码
含vsto
vb.net
的章节
主要包含vba案例源
代码
及
vb.net
源
代码
第10章 Ribbon用户界面 第11章 创建跨版本兼容的应用程序 第12章 理解和使用Windows API
调用
第13章 用户窗体设计与范例 第14章 接口 第15章 VBA错误处理 第16章 VBA调试 第17章 优化VBA的性能 第18章 数据库开发简介 第19章 Access和SQL Sever数据库编程 第20章 数据处理技术 第21章 高级图表技术 第22章 控制其他Office应用程序 第23章 Excel和Visual Basic 6 第24章 EXCEL和
VB.NET
第25章 使用
VB.NET
编写
托管
COM外接程序
VB.net
实现的网页小工具
VB.net
实现的网页小工具。 练习及理解:多线程操作,窗口消息,事件响应以及
非
托管
API的
调用
方法。 主要思路: 将网页画面复制到另一个小窗口上,实现小窗口预览。 将小窗口上的鼠标及键盘事件发送到网页上,实现小窗口操作。 建立新线程实现简单的按键精灵功能。 WIN7下调试通过。vs2008 vb编写。 执行文件在 WebGameWindow\bin\Release 目录下。
C++编写能多语言
调用
实例
涉及PB C#
VB.net
,一个简单的实现C++编写公共接口,.net与PB进行
非
托管
(注册OCX或DLL)式交互可能
VB反编译工具|VB反编译精灵(VB Decompiler Pro)9.8 破解版
反编译工具(VB Decompiler Pro):是一款针对使用Visual Basic 5.0/6.0开发的程序的反编译器。反编译工具(VB Decompiler Pro)可以被编译成伪
代码
p-code或native code模式。由于伪
代码
是由高级指令组成, 因此是很有可能反编译成源
代码
的(当然, 变量名,函数名等等是无法反编译的).反编译工具(VB Decompiler Pro)可以恢复众多伪
代码
指令,但要反编译成源
代码
还是有很多工作需要完成, 反编译器将帮助您更轻松的分析程序算法以及部分恢复源
代码
。 如果一个程序被编译成native code, 从机器码恢复源
代码
是几乎不可能的. 但即便是这种情形下VB Decompiler还是可以帮助你分析程序. VB Decompiler包含了一个强大的支持包含MMX和SSE的Pentium Pro指令集的反编译器. 它还包含一个
代码
分析器, 用于搜索所有API
调用
,汇编
代码
中的字符串引用并将结果修改为相应的注释。 加入一个程序被编译成.net汇编,反编译器将恢复所有的
托管
代码
的数据表和模块,并且使用IL反汇编器反汇编所有的方法,函数以及事件。反编译并不需要.NET Framework并且支持所有的32位Windows操作系统。 VB Decompiler也将反编译文件中的所有的图形界面窗体以及控件。出于技术需要,反编译器可能显示所有控件的编译地址。 对于加壳的VB程序,首先需要脱壳后才能正常反编译。 总而言之, VB Decompiler是一款出色的程序分析工具. 尤其是当您不慎丢失源
代码
并且需要部分恢复原工程的时候。
VB
16,554
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章