-
VB从EXE中提取图标.rar
2019-07-10 11:03:40VB从EXE中提取图标,支持从DLL/EXE/OCX文件中提取图标,所有涉及到图标都会读取出来,根据用户的选择导出对应图标,运行效果如演示截图所示,看上去貌似很强大的图标提取程序。 -
让VB生成的DLL工程导出函数
2008-08-20 20:42:00VB是方便的快速开发语言之一,但是VB和最近流行的Python相比,有一致使的缺点,就是它为了尽可能方便程序员傻瓜式开发,而把自己... 刚好这段时间要用VB做一个Demo,故分析了一下,发现VB的Link.exe是支持导出函数的,VB是方便的快速开发语言之一,但是VB和最近流行的Python相比,有一致使的缺点,就是它为了尽可能方便程序员傻瓜式开发,而把自己封闭在一圈子里了,屏蔽了很多特性,比如用VB创建COM组件是超级简单,可惜若要自己加点东西,实存太麻烦了,比如我要让Dll导出我自己的函数,用VB默认就做不到。
刚好这段时间要用VB做一个Demo,故分析了一下,发现VB的Link.exe是支持导出函数的,只是VB的IDE没有提供入口而已,故写一工具以辅助之,相信很多人都遇到相似的事情。
具体原理我就不多说了,大家查看一下VB中LINK.EXE中参数帮助即知晓。
我已经写好了一个很方便的工具,大家若需要的话可以从这里下载:http://download.csdn.net/source/580078
使用方法如下:先把VB原来的LINK.EXE改名为LINK2.EXE,然后把本工具link.exe拷到原来LINK.EXE的相同目录下即可。
若你想导出函数,只要在你的工程目录中,增加一.def文件,此def文件的格式和VC是一样的,如:
LIBRARY "advapidemoPS"
DESCRIPTION 'Proxy/Stub DLL'
EXPORTS
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE
InitAdvApi @20 PRIVATE
def的文件名任意,编译时,会自动查找当前工程下的def文件,若没有def文件,则直接调用原来的LINK2.EXE进行连接,若发现有def文件,则会提示使用发现的def文件进行链接。
链接完后你用Depend等工具查看一下生成的DLL,即可发现你在def文件中定义的导出函数已经成功导出了。
Gook Luck。 -
VB6导出Excel - 引用“Microsoft Excel 16.0 Object Library”时找不到该引用-解决方法
2018-08-12 14:44:04机房查询上机记录-导出为Excel表 添加引用“Microsoft Excel 16.0 Object Library” 在可用的引用中没有找到该引用 一、单机浏览 二、找到Office安装文件夹,打开 三、找出Excel.EXE文件选中...机房查询上机记录-导出为Excel表
添加引用“Microsoft Excel 16.0 Object Library”
在可用的引用中没有找到该引用
一、单机浏览
二、找到Office安装文件夹,打开
三、找出Excel.EXE文件选中打开,可搜索找出
四、即可看到该引用,选中添加即可
-
VB调用DLL导出函数出现“Bad DLL call convention”的解决
2006-05-31 22:48:00用VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。上网查阅文章后发现,解释方式下的VB调用C语言写的函数,仅限于PASCAL调用约定的函数,也...用VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。上网查阅文章后发现,解释方式下的VB调用C语言写的函数,仅限于PASCAL调用约定的函数,也就是stdcall方式,而C方式的函数(cdecl)是不行的,编译运行时无此限制。解决方法,打开DLL文件源代码,在导出函数的声明和实现前面都加上关键字__stdcall,例如:// in head file:int __stdcall myFunction();// in cpp file:int __stdcall myFunction () { ... }重新编译DLL并再次运行VB程序,问题解决。由此不难理解为什么Windows API函数的声明中为什么都有一个“WINAPI”,例如
int
WINAPI
MessageBoxA(
HWND hWnd ,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType);因为在windef.h中有以下定义:
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall -
excel vb ppap_利用二次开发程序导出PCDMIS测量数据到Excel表格
2020-11-30 03:45:41本文主要讲述怎样利用PC-DMIS软件自带功能结合以Visual Basic语言编写的小软件“PC-DMIS_to_Form.exe”,把测量程序中的评价数据以Excel表格形式导出,并开源部分源码给有兴趣的朋友作参考。【关键词】VB, 二次...【摘要】众所周知,PC-DMIS软件不但给我们带来强大的检测功能,还预留了二次开发接口pcdlrn.TLB,用户可根据自我需要编写合适的辅助小软件。本文主要讲述怎样利用PC-DMIS软件自带功能结合以Visual Basic语言编写的小软件“PC-DMIS_to_Form.exe”,把测量程序中的评价数据以Excel表格形式导出,并开源部分源码给有兴趣的朋友作参考。
【关键词】VB, 二次开发, PPAP模板,外部命令,数据提取
【目的】插入PC-DMIS程序代码,使有需求的测量程序能把评价数据以自动报表形式导出到Excel文件中,省却了“打印数据→制表→输入数据→判定”等多步骤工作,节约了大量工作时间。
【方法】
一、 “PC-DMIS_to_Form.exe”辅助软件目录文件及功能详解:
如上图所示:
<1>logo.bmp是可替换的报表表头LOGO图片;
<2>pcdrsys.ini是参数设置文件,用户可根据不同的需求设置Path(报表输出路径)、srt1至srt7是报表表头中的项目标题;
<3>PC-DMIS_to_Form.exe是主程序软件;
<4>导出的Excel文件命名规则:“当前打开的程序名称“+当前的日期与时间。
二、操作步骤如下:
<1>首先把光标移到测量程序最后,然后依次点击菜单栏“插入→外部命令”;
<2>在弹出的窗口中点击“文件浏览”按键,并在打开文件输入窗口中选择“PC-DMIS_to_Form.exe”;
<3>设置选项,如下图:
<4>点击“确定”按键后将自动生成以下程序:
外部命令/不显示, 等待 ; C:\USERS\ADMINISTRATOR\DESKTOP\PC-DMIS TO FORM\PC-DMIS_TO_FORM.EXE
<5>保存程序。往后每次执行该程序并执行到外部程序命令行时,都会自动把程序中的评价数据以固有报表格式保存指定目录的Excel文件中。样式如下图:
当然我们也可以使用定制工具栏“新建项目”方式,把“PC-DMIS_to_Form.exe”添加到PC-DMIS软件工具栏上。需要使用时直接点击该图标就行,具体操作方法可以参照下图,本文就不作详细介绍了。
三、 “PC-DMIS_to_Form.exe”软件关键代码开源及释义:
Private Sub Form_Load()
Me.Visible = False '设置窗口运行时不可见
Dim appPcdmis As Object, cmdsPcdmis As Object, cmdPcdmis As Object, prtPcdmis As Object'变量定义
Dim exlapp As Object, wbook As Object, sht As Object'变量定义
Dim i As String, u As String, pp As String, featName As String, nameid As String'变量定义
Set appPcdmis = CreateObject("PCDLRN.Application")'实例化PC-DMIS应用程序
Set prtPcdmis = appPcdmis.ActivePartProgram'实例化当前激活测量程式的事件
Set cmdsPcdmis = prtPcdmis.Commands
u = 1'赋值
i = 5 '赋值
Set exlapp = CreateObject("excel.application")'实例化Excel应用程序
Set wbook = exlapp.Workbooks.Add '增加一个工作薄
Set sht = wbook.Sheets(1)'打开Excel工作表
sht.Activate '激活工作表
For Each cmdPcdmis In cmdsPcdmis'遍历命令集合中的每个命令
If cmdPcdmis.IsDimension Then'如果命令是尺寸时
If cmdPcdmis.DimensionCommand.Feat1 <> "" Then'获取对象特征标题
nameid = cmdPcdmis.DimensionCommand.Feat1
End If
If cmdPcdmis.DimensionCommand.Feat2 <> "" Then'获取对象特征标题
nameid = nameid & " 至 " & cmdPcdmis.DimensionCommand.Feat2
End If
If cmdPcdmis.DimensionCommand.Feat3 <> "" Then'获取对象特征标题
nameid = nameid & " 至 " & cmdPcdmis.DimensionCommand.Feat3
End If
featName = cmdPcdmis.ID'获取实例对象ID
If cmdPcdmis.Type <> DIMENSION_END_LOCATION And cmdPcdmis.Type <> DIMENSION_START_LOCATION And cmdPcdmis.Type <> DIMENSION_TRUE_START_POSITION And cmdPcdmis.Type <> DIMENSION_TRUE_END_POSITION Then'如果尺寸对象不是开始或结束空值时
If featName <> "" Then'获取对象特征标题
nameid = featName & "=" & nameid
End If
If Format(cmdPcdmis.DimensionCommand.OutTol, "#0.0000") <= 0 Then '判断是否超差
pp = "√"'如果合格时
sht.range("F" & i).Font.Color = RGB(0, 255, 0) '设置符号颜色
Else
pp = "×"'如果不合格时
sht.range("F" & i).Font.Color = RGB(255, 0, 0) '设置符号颜色
End If
sht.range("A" & i) = u '输出序列号
sht.range("B" & i) = Format(cmdPcdmis.DimensionCommand.NOMINAL, "#0.0000") '输出图纸值
sht.range("C" & i) = Format(cmdPcdmis.DimensionCommand.Plus, "#0.0000") '输出上偏差
sht.range("D" & i) = Format(cmdPcdmis.DimensionCommand.Minus, "#0.0000") '输出下偏差
sht.range("E" & i) = Format(cmdPcdmis.DimensionCommand.Measured, "#0.0000") '输出测量值
sht.range("F" & i) = pp '输出判定
sht.range("G" & i) = nameid & "(" & GetAxis(cmdPcdmis.Type) & ")" '输出元素标题备注
u = u + 1'变量叠加运算
i = i + 1'变量叠加运算
End If'结束条件语句
End If'结束条件语句
Next’下一个循环,直到遍历完命令集合中的每个命令为止
exlapp.DisplayAlerts = True '关闭Excel时提示保存
exlapp.Visible = True '设置Excel对象可见
Set sht = Nothing'释放Excel资源
Set wbook = Nothing'释放Excel资源
Set exlapp = Nothing '释放Excel资源
END’结束软件
End Sub
参考文献
1.《PC-DMIS参考手册》
2.《pcdbasic.chm》
-
VB调用VC写的DLL导出函数出现“Bad DLL call convention”的解决
2011-05-12 11:54:00用VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。 上网查阅文章后发现,解释方式下的VB调用C语言写的函数,仅限于PASCAL调用约定的函数,... -
VB.NET 调用Excel 不能关闭 Excel.exe 进程的问题
2010-04-12 18:01:00使用.net 调用Excel 生成Excel 报表 的时候 会出现 Excel.exe的进程不能关闭. 反复打开几次就会多几次Excel.exe的问题. ...直被一个问题困扰就是导出excel时如何关闭excel进程,我使用过oExcelApp.Quit(); 也用过 -
VBExplorer VB6程序反编译工具,可以了解一个VB6程序的基本的框架结构
2009-05-11 10:40:38VB6程序反编译工具,直接打开目标exe文件,选择菜单“discompile”-“Export Project”导出整个工程。 -
一款让vb编译类API DLL的工具
2016-10-01 10:17:12一个可以让VB编写函数接口的软件,让vb编写的DLL,OCX等等具有导出函数,我们可以像使用API函数一样的去调用我们的DLL或者OCX等,此软件还可以查看所有DLL,OCX,EXE等文件的导出函数,查看文件版本信息( 此版需要安装个人... -
机房收费系统之导出excel
2019-10-27 19:26:57在机房收费系统中,需要把查到的数据导出到excel表中,下面是实现这一功能的方法之一。 解决方法: 1. 第一步:添加引用excel表 现在VB环境中找到“工程”→“引用”引用excel: 如果找不到上述的引用,可以先在... -
VB使用smtp.dll发送Email程序演示.rar
2019-07-10 19:40:09VB使用smtp.dll发送Email程序演示,简邮邮件发送组件,mtp.dll通过smtp协议发送邮件,为标准windows dll 支持VB VC等主流编程工具调用,调用方式跟调用windows api完全相同。 使用或者发布后无需注册控件 无需做成... -
机房收费系统————导出到Excel
2015-06-21 19:23:01机房收费系统中有很多之前在敲学生的时候没有接触到的功能,遇到的第一个陌生的就是把数据导出到Excel中,那么这个功能是怎么实现的呢? 首先,在VB中“工程”——>”引用"中添加引用 如果没有这个选项,单击右边... -
Spy4Win.exe
2014-12-15 18:14:12+ 增加了生成获取窗口和窗口风格的代码格式:Delphi和VB * 改进了导出窗口报告模块,避免了有可能出现的AV错误 2004/12/13 v0.10 =================================== 初版程序发布 从此以后用Spy4Win代替MiniSpy... -
VB编程资源大全(源码 文件)
2007-10-17 22:40:03004.zip 一些采用Vbscript脚本语言制作的网页实例(11KB) 112,lyb.zip 桌面留言簿(4KB) 113,vbtechure.zip VB教程(221KB) 114,mdbto.zip MDB导出多种文件(3KB) 115,encrypt.zip 加密... -
Reflector(C#,VB,C++,DEPHI反编译程序)
2009-11-27 10:53:09先下载本压缩包并解压缩,运行其中的Reflector.exe(主程序),初次运行会弹出错误提示对话框,因为引用的两个插件DLL是按照我本地实际情况配置的,所以你还需要根据你的实际情况来从新配置一下,方法很简单,我们拿引用... -
发布一个用vb写的xml书籍阅读器
2004-06-24 14:02:00用VB做了一个XML书籍阅读器,断断续续写了2个月,先发布... 最大的特点是可以任意导入/导出书籍,和exe格式的ebook不同,每本书就是一个单独的XML文件,内嵌XSL用于显示目录,内容等。因此要转换成其他格式如Text,... -
用VB和SQL Server实现文件上传(方案例)
2004-09-14 17:06:00思路:1、连接到SQL Server2、向临时表中写入二进制数据3、导出表中数据并另存为文件第1,2步可以利用ADO来实现,用VB做是很方便的。第3步使用TextCopy命令,注意,此命令仅存在于SQL Server 2000,调用... -
虚拟机安装linux系统完整教程及常见问题
2021-03-05 09:37:25虚拟机安装linux系统 下载 virtualbox 虚拟机 ...VirtualBox-5.1.18-114002-Win.exe -extract -path D:\vb 导出 msi文件 管理员方式 运行 msiexec /package D:\vb\ VirtualBox-5.1.18-r114002-MultiArch -
Winsecs 2.7 版
2018-11-29 13:05:22winsces 安装包, iso 直接导出檔案, 点击setup.exe执行 内容包含操作手册、求助文件,VB6 范例 -
手动发布Java桌面应用
2013-08-20 14:11:22[b]前言[/b] [size=medium]Java应用大体可以分为两类:web应用和桌面应用。 web应用发布起来比较有规律可循,通常打包为war或者ear发布到指定的服务器容器中作...也有一些打包工具,例如exe4j可以打包成exe程序。... -
访问Excel应用程序的有关注意事项
2008-12-21 19:50:00例如目前比较通用的版本是Excel 2003,就可以找到安装目录下的那个Excel.exe,然后使用tlbimp这个sdk工具,将其导出为dll.实际上就是把这个com程序进行了RCW的封装。此时得到的Excel.dll是可以直接被.NET程序访问的 2... -
c#中引用原生动态库时出现80040154错误的解决方法
2011-12-20 15:13:16因换机器,代码迁移后,在vs2005上重新编译项目,生成成功后,运行程序,在创建com对象时,出现80040154错误(com组件未注册),经过检查发现是因为该dll是由tlbimp.exe工具导出成公共语言运行库程序集。需要注册原生... -
曲线坐标计算程序
2014-06-06 10:11:152、如启动程序时仍出现系统错误,请点击windows开始-运行,输入 regsvr32.exe C:/Windows/System32/comdlg32.ocx语句。 3、在安装“AotoCAD2007简体中文版”的电脑上会出现“Windows 正在配置AotoCAD2007,请稍候。... -
MPQ格式文件API接口
2008-02-17 16:25:09然后在包含库中加入 SFmpq.lib, 然后就可以调用SFmpqapi.h中的导出函数进行编程了, 最后把SFapi.dll和编译好的.EXE文件放入同一文件夹下就可以了. 需要注意的是,在这个接口中,Archive指MPQ压缩文件,而File指MPQ... -
网站猎手2.0(Webhunter)
2015-08-30 15:38:36如果用户操作系统未安装VB,直接运行webhunter.exe会提示缺少文件, 那么请您将System32.rar压缩包中文件解压缩并将缺少的文件复制到与webhunter.exe可执行文件的相同目录下即可。 2。查询 首先找出有漏洞系统的特征... -
Offline Explorer Pro v7.7.4640.zip
2019-07-03 21:25:31提供支持,并提取从Java和VB脚本,Java类,层叠样式表(.CSS),Macromedia Flash的(.SFW),XML/ XSL/ DTD,目录(.TOC),MPEG3播放列表(.M3U链接),Authorware中(.AAM)时,Acrobat(。PDF),RealMedia格式... -
LINQPad_Premium_5.31.00_Beta_Any_CPU
2018-07-09 14:56:29您现在可以在C#和VB中使用可空引用类型。转到编辑| 首选项>查询,并选中启用Roslyn实验程序集的选项。 单击此处获取有关如何向C#团队提供反馈的信息。 现在有一个vi仿真模式!转到编辑| 首选项| vi启用模式。请在...