此网站为广告印刷行业从业人员提供CDR排版辅助设计技术及Excel订单管理系统开发。
当前位置:Graphhome > CDR/Office/PS技术 > 正文

vba7 win64环境下的vba代码兼容性问题-用windowsApi实

近期由于需要实现listbox接受文件,并列表出来:
不想用任何第三方控件,比如listview,treeview,版本及控件注册问题很头疼。
网上找到vba 32位代码,可以实现纯api响应windows文件拖拽:

http://www.360doc.com/content/10/0113/09/406571_13405358.shtml

感谢作者分享此代码,基于此才有后面的探讨。
考虑到coreldraw X7,2018版本等安装64位windows上低版本的32位代码将不可用。于是要对上面的代码做修改。
1、修改api声明ptrsafe,并且定义相关变量longptr 或者longlong
2、针对64位,windows提供了新的函数用于取代旧的函数:setwindowlong 和setwindowlongptr
3、针对回调函数,参考相关资料,不然会导致系统崩溃。

下面附代码,希望vba开发人员做参考,coreldraw方面的开发资料太少
drag-drop vba 64 位代码:窗体+模块


ExcelHome参考资料:

64位利用API 在vba窗体识别从windows拖拽的文件-兼容问题
http://club.excelhome.net/thread-1424026-1-1.html
VBA开发必备 Smart Indenter VBE(代码排版,API转换,VBA DumP,VBA工程密码破解)
http://club.excelhome.net/thread-1340930-1-2.html

微软参考资料:

32 位和 64 位版本的 Office 2010 之间的兼容性
https://msdn.microsoft.com/zh-cn/library/ee691831.aspx

VBA7基本代码
 https://msdn.microsoft.com/zh-cn/library/ee691831.aspx#odc_office2010_Compatibility32bit64bit_IntroducingVBA7CodeBase

其它网络资料:

SetWindowLongPtr在开发64位程序的使用方法
https://www.topomel.com/archives/245.html


VB 子类化技术详解

http://www.newxing.com/Tech/Program/VisualBasic/502.html

版权保护: 本文由Graphhome原创,转载请保留链接: www.graphhome.com/CDR_Office_PSjishu/2018/0710/23.html

小站主人Graphhome
博主印刷技术专业。熟悉印前技术、CTP制版流程。混迹图文广告行业多年,工作之余为提高工作效率,通过VB语言将coreldraw与Myexcel管理软件集成,搭建了订单管理系统,实现了工作数据一体化管理。站内免费开源地分享了博主作品格辅图攻graphhome软件和部分插件或技术,祝您工作顺利、生活幸福 ̄︶ ̄
  • 文章总数
  • 10122访问次数
  • 建站天数
  • Graphhome排版管理系统CDR

    标签