上回在这里看到有人发了一贴说了这个方法,我回去试了一下,真的是可以用,但是手工编译太麻烦了,于是就做了一个这个小东西,在下面的网址下载:http://www.tbns.net/m5home/soft/link.exe 16K使用上还是老方法,把原LINK.EXE改名为LINK2.EXE.不过因为水平的原因,它只能对已经保存的ActiveDLL工程正常编译.
但我还有一个问题,就是用这个方法做的DLL好像无法返回数值呀?
我做了一个DLL,其中有一个函数是这样的:
GetPsw (Hwnd As Long) as String
作用是返回当前鼠标下控件的文本,参数是此控件的句柄.但返回值一直是空.我把这个模块加到工程里去,在工程里直接调用这个函数就可以.但是由于我是做一个在NT内核下看**号的程序,如果调用SendMessage的线程与被调用的线程不是同一进程内的,调用就会失败,就是说在98下看*号的方法在NT内核系统(2K,XP,2K3,NT)下就没用了
可是我用ASM编译了一个DLL却又可以,这是为什么呢?难道VB里的这个"新DLL"还是ActiveDLL??还是无法达到C,ASM,Delphi等编译出的DLL的功能?
请知情人士解答一下?
但我还有一个问题,就是用这个方法做的DLL好像无法返回数值呀?
我做了一个DLL,其中有一个函数是这样的:
GetPsw (Hwnd As Long) as String
作用是返回当前鼠标下控件的文本,参数是此控件的句柄.但返回值一直是空.我把这个模块加到工程里去,在工程里直接调用这个函数就可以.但是由于我是做一个在NT内核下看**号的程序,如果调用SendMessage的线程与被调用的线程不是同一进程内的,调用就会失败,就是说在98下看*号的方法在NT内核系统(2K,XP,2K3,NT)下就没用了
可是我用ASM编译了一个DLL却又可以,这是为什么呢?难道VB里的这个"新DLL"还是ActiveDLL??还是无法达到C,ASM,Delphi等编译出的DLL的功能?
请知情人士解答一下?
解决方案 »
- vb 程序通过COM口只能读取数据一次。
- 寻求vb常用函数及说明
- VB6使用API实现串口通信
- 为窗体添加滚动条
- 碰到个棘手的问题。能不能把一块内存区域虚拟成一个文件,然后用 ShellExecute执行.
- 倾所有积分,拜求一简单但小弟没有解决的问题!
- 请问win98里是否自带了ado的支持文件?
- VB INSERT语句问题
- 请问哪个高手有彩票随机号码程序》?
- 世界杯开赛在即,我来开盘口。。。。。欢迎参加!!!!!!!!!!!!!!!!!!
- 请问哪位有visual basic 的安装盘程序下载地址,谢谢!!!
- form的borderStyle如果设为0-none,弹出MsgBox时,form总会抖动,为什么?
http://vip.6to23.com/nowcan1/tech/psw_view.htm
http://vip.6to23.com/nowcan1/tech/bcb_pwd_w2k.htm
返回值定义为string,这给其它程序的调用带来了困难,建议这样定义接口:function GetPsw (byval Hwnd As Long,byval buff as string,byval bufflen as long) as long参数:
Hwnd表示欲获取文字的那个窗口的句柄
buff表示预先定义的一个缓冲区
bufflen表示缓冲区的大小
返回值:
表示复制到buff的字串长度
Dim PwdStr AS String * 255K=GetPwd Hwnd,PwdStr,Len(PwdStr)PwdStr里就是文本是吧?