青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
楼主: qianwei11

[原创] 关于用易语言写DLL

[复制链接]
发表于 2012-5-12 16:29 | 显示全部楼层 |阅读模式
下面写的内容是我一年前摸索的,后来因为工作原因不做这些,就搁置了。
1 o$ C1 u5 u0 D7 l! s今天整理硬盘的时候发现了这些资料,因为记得论坛上有不少人在研究用易语言来给ug做二次开发,所以拿出来给大家分享。# B2 }- r* ~+ S+ j
因为能力有限,当时写代码就有点乱,我现在也没有整理,不过大致功能是明确的,我在这里做了简单的说明。
2 U9 x. P7 p/ v6 X8 j. f
3 F9 s9 D9 r! a6 \9 n为什么会想到用易语言来开发:
4 n4 ~4 M1 g8 {! D/ M6 g
1,因为用c++来开发,并不是大多数人所能掌握的,必须要有一定的基础。而易语言比较简单,容易掌握,只需短暂的时间就能写出一些简单的程序代码,比较适合普通人群
; N! ?, d' R0 F" K# b6 R2 i1 V) @2,VB也可以做二次开发,且语言也比较容易掌握。但是用VB写的EXE可执行程序,在GRX调用时,不能共享UG窗口,也就是说当打开EXE文件时,不能对UG软件进行任何操作。因为有的时候我们在输入参数时,要看一下3D模型,而这时不能对UG视窗操作,这是非常讨厌的!(至于VB写DLL,或者VB结合C++,我没有做研究,这里不做讨论)
4 ~6 z/ Y" Y, c. y5 m- g2 C7 v0 E# o' d0 f' W
附件里易语言所能实现的功能:( u- t: P5 W, `9 H3 U: Y! t
这里用易语言编写的DLL,可以用UG直接调用,然后进行相关参数的输入7 F; R1 ~2 G# v' _* N$ Z' s% @
运行相应的GRX文件是通过一个C++的DLL进行过渡的(这里C++写的DLL起了个启动GRX文件的作用,这DLL是通用的,里面有个输入函数,参数就是GRX的路径全名称)这个DLL你们以后可以不用写,你们用易语言写的DLL可以直接调用这个文件,只要附上正确的参数。调用格式如下图6 V% c; P; X# t- N
1.jpg ; ^* _4 x0 |7 N( c& \! W" G
2.jpg
' s0 o# ~3 F* ]+ |* N4 ]* b  Y4 A
1 U9 I) m. x- y; U1 U' q, F( f' A2 M! sUG调用DLL的入口函数通常有ufusr()和ufsta()两种5 Y0 L  I4 X" c! t; n3 M+ j- P
ufusr()是通过下拉菜单点击实现的,ufsta()可以放在特定目录让UG自动加载。+ M& Z7 ^0 w9 K& N# }+ u/ D. o
这个可以自行选用。此函数必须公开) y$ q) W, v7 J+ X' \* w6 n* \% E& @
下面是格式
8 j& O, U' q& u: w1 t' P: f( ]. z 3.jpg
/ G# i2 |$ }- \, [' U6 k. |1 Z还有的内容我就不写了,你们可以下载附件自己研究
. ^! L: o5 \( f( m9 a: ]
, D1 W3 g* K# P1 i. J存在的一些问题
4 _: P. Z6 \4 g9 x
附件的代码只是实现了一些简单的功能,而且代码也有很多不足的地方需要改正,请谅解, j  u5 e8 b) N! D
1,如果需要DLL和GRX进行参数传递,还是需要用文本文件进行过渡的。
+ M. v' h& Z) n: f7 a% j4 {2,当运行了GRX文件,DLL的界面还是显示的,如果再次点击运行按钮,会有错误(这些可以修改代码完美解决问题,我这里没有进一步深入)0 o. l/ R! q) V0 c$ ~/ R; ^& S6 T

0 [, s7 E$ _: `把附件解压到D盘,CTRL+U调用文件夹D:\QW里的test.dll进行测试  t2 x% T+ q4 }# s0 g
注:在UG4.0上测试通过,易语言用的模块式网上搜索而来。里面有些代码可能是没用的,请自行整理。; D2 ]7 H: i: {# B
QW.rar (533.54 KB, 下载次数: 955)
, [! O3 H8 G/ l2 E3 b+ n1 T3 L# j

评分

参与人数 1流量 +2 G币 +2 收起 理由
-KASA- + 2 + 2 很给力!

查看全部评分

发表于 2012-5-15 14:33 | 显示全部楼层
22222222wes ad asdas das
回复 支持 反对

使用道具 举报

发表于 2012-5-19 14:49 | 显示全部楼层
fdgdhghhhhhhhhhhhh
回复 支持 反对

使用道具 举报

发表于 2012-5-29 22:26 | 显示全部楼层
不懂。。。。。
回复 支持 反对

使用道具 举报

发表于 2012-8-26 07:13 | 显示全部楼层
谢谢分享 收下了
回复 支持 反对

使用道具 举报

发表于 2012-11-27 08:35 来自手机 | 显示全部楼层
1688808479
回复 支持 反对

使用道具 举报

发表于 2013-1-6 10:04 | 显示全部楼层
这方面的资料很少,谢谢了
回复 支持 反对

使用道具 举报

发表于 2013-1-22 08:57 | 显示全部楼层
我对易精通.看看我能不能再完善一点
回复 支持 反对

使用道具 举报

发表于 2013-1-22 09:24 | 显示全部楼层
刚才试用了.不能在运行过程进行交互.比如:有一个grx文件内容是这样的:我拾取了一个实体后,将实体数据以文本存到外部.易语言读取后,进行需要运算,再次写到外部,GRX读取运算后的数据.继续往下执行.
4 A  b' D3 ^( L# N- h$ S

点评

1.这个主题写的是用易写界面,然后输入参数后,然后GRIP运行,且不能中断 2;如果要达到你刚才所说的,也是可以的,但是前提是先运行grip,然后调用一个C写的dll传递参数,dll里面再调用易写的DLL进行计算(虽然有点  详情 回复 发表于 2013-1-22 21:49
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-22 21:49 | 显示全部楼层
800100 发表于 2013-1-22 09:24
4 X# b7 x1 T) F刚才试用了.不能在运行过程进行交互.比如:有一个grx文件内容是这样的:我拾取了一个实体后,将实体数据以文本 ...

1 R. k9 I5 p. y1.这个主题写的是用易写界面,然后输入参数后,然后GRIP运行,且不能中断  y0 T; h) P9 t; A
2;如果要达到你刚才所说的,也是可以的,但是前提是先运行grip,然后调用一个C写的dll传递参数,dll里面再调用易写的DLL进行计算(虽然有点烦,但是不会C,也只有这样了),这样的话,GRIP是可以等待的。! c' l( J0 m; D4 t2 U# m
如果说是1和2混合使用的话,可能会不成功。没有试过,你可以自己研究研究。  v% H& k1 P3 J& f; q
备注:其实易完全可以写DLL,只需把所有文件头翻译下,这得精通C,如果精通C的话,又何必用易呢,很无奈~~~~
  s& P" f, V/ ~. z$ G
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-8-26 12:18 , Processed in 0.062785 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表