VB程序员博客
Archive for 04月, 2009
04 26th, 2009
我下载了个源代码里,可以直接拥有word.application
而我打开一个新的vb 时,就没有word这个类型!
我加载了一个word文档控件,出现的是wordCtl类型!!
请问大家怎样才能让拥有word 类型啊??
在"工程"–"引用"里选择"Microsoft word 10.0 object library",10.0是版本,如果你的装的office2003则是11.0
我怎么没有这个库啊??
我下的源代码也没有引用这个库啊??
你安装了office就有了
我安装了啊
你可能没有操作对
我用的是vb6.0,会不会只有vb.net才可以引用啊??
vb6.0 就有
"工程"——〉"引用"——〉"Microsoft word 11.0 object library",
引用。。。
有点意思….没有引用,就能看见那个类,那么除非在控件里面有提供.
那代码在哪?弄个地址看看.
04 26th, 2009
Public SIP '数据库IP
Public MODBC '数据库名称
Private Sub Form_Load()
SIP = "127.0.0.1"
MODBC = "系统"
Adodc1.ConnectionString = "provider=sqloledb.1;persist security info=" & _
"false;user id=sa;initial catalog=" & modbc & ";data source=" & SIP
Adodc1.RecordSource = "select * from b_info"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF = False
Key = Adodc1.Recordset.Fields("i_name")
Cb1.AddItem Key
Adodc1.Recordset.MoveNext
Loop
End If
End Sub
错误信息:'用户sa登录失败,原因未与信任的sql server 连接相关联' 望各位高手指点!!!
在Form上右键点Adodc1控件看属性,用生成字符串连接,如果成功,就用新串替换代码上的即可,如果不成功,很可能是认证模式的问题,2种都试一下: windowswindows与sql server混合认证,肯定有一种能通过
04 25th, 2009
wb.Navigate "E:1.doc" '加载文档
wb.Document.Application.ActiveDocument.SaveAs "E:2.doc", Formats.wdFormatDocument '保存为2.doc
1.doc是存在的,想加载到wb中后进行修改,然后保存为另一个文档2.doc,但是始终保存不了,不知道怎么回事,请指教!
04 25th, 2009
我的工程有driveListBox,DirListBox,FileListBox控件,当我启动了我程序以后,再插入一移动磁盘(或移动硬盘),请问如何将它自动添加到dirveListBox控件的列表上去.大家帮忙看下
开始也想到,哎,就是头脑不会转一下,多谢chenjl1031 的回复,很及时.
请问用drivelistbox控件的什么事件来触发自动添加啊,到不到补充一下,在哪个事件加drive1.refresh最合适啊,最好不要加timer控件
Private Sub Drive1_GotFocus()
Drive2.Refresh
End Sub
这样做好似第一次选时选不中文件,要第二次才出现的
drivelistbox控件所有事件都要人工触发,自动触发就要时间控件
04 23rd, 2009
我想问一下,我的工程中,除了窗体之外我还添加了几个类,
分别放着公用的声明,以及各个窗体中都能用到的计算算法(函数),
为的是在不同的窗体中可以自由的调用这些函数,请问我如果制作
安装程序中,这些类模块还需要特别的注册一下吗?
我制作好的安装程序在未安装VB的电脑里,提示错误“类未注册”
大家帮着看看吧,谢谢。
我刚才又想了一下,我可以确定我那个应该是类模块,和类还不太一样吧,
类有点面向对象的意思了,而我的类模块里放的只是公共的声明和计算函数(算法)
这样的话怎么注册呢?
非activeX工程不用注册….
楼上的大哥是说,类模块不用注册吗?
但是我制作的程序在未装VB的电脑上
安装之后,为啥用不了啊,错误提示就是
说:"类未注册"。
你可能引用了其他的类,而不一定是你写的类.
看看你的工程中引用了什么部件,类.这是VB最常见的一类问题.
你写的是标准模块
工程内的类模块也不要注册,调用时,声明为对象就可以了
这类常见的问题怎么解决呢?
我已经尝试制作安装程序一年多了,在未装VB的机子里安装效果非常不好。
几种的安装软件也都用过,之前也出现过类似 引用控件未注册或着版本已过期
的运行错误。
这方面我怎么调试啊?因为在我的电脑中是看不出来这些问题的。只能到
别的电脑中安装才会出现这类问题。
大家就没有遇到过这类问题吗?
我引用的部件也就几种,用到DAO制作数据库时引用过access部件,出报
表时引用过Execl部件,还有的就是一个M什么表格控件。别的就没什么了。
如果说标准的类模块不需要注册的话。
大家帮忙找找问题吧!难道vb就没有解决这些问题的好方法吗?
装 VirtualPC 或者 VMWare 然后做各种操作系统的镜像(注意保留干净镜像文件),测试程序的兼容性.
如果正确打包,不会有这样的问题…
比较专业啊 之前没听说过,我去试试。
帮顶.
弹出类未注册,一般是外部对象未注册
看看你引用了什么对象,使用了什么控件,然后在目标机器上构建相应的环境.
如果目标机器的系统版本比你做程序的系统版本低的话,会出现什么情况呢?
04 23rd, 2009
请教各位专家:现在如果在公司里面的话,如果想让多个部门(比方说有很多个部门的话)的所有电话只交一部电话的费用的话(比方说:有很多个电话一起通话的话),除了用已经有的ISDN设备外,是否还有其它的方法可以做到多个电话只交一个电话的费用的方法?还有一个问题是:已经有的ISDN这种设备它分:外置的(像MODEM一样)和内置的(好像是一个电路心,可以插入到电脑的主板中),我想问的是:这种内置的ISDN是如何工作的?如果用内置的这种ISDN的话,那么它和电话又是怎么连接的呢?用电话时,怎么连接的呢?还有个问题:我见过外置的ISDN设备,在它上面有多个插孔,可以连接电话,那么一个公司如果有很多个部门的话,一个部门比如又有很多个电话的话,那么是否就得在公司里面购买很多个ISDN设备呢并且在电信局开通这种大容量的ISDN通信呢?别外还有:电话机是否可以以对等的方式连接进行对外通信呢?(就像电脑可以用同轴电缆进行联网通信一样)
以上这些问题请各位专家给予较详细的解答,多谢大家!(因为我本人不太了解这东西,但又想了解的清楚些)
(主要想知道:除了ISDN设备外,是否还有其它的方法可以做到多个电话只交一个电话的费用?)
04 23rd, 2009
请教各位专家,如何用VB来写测试电脑主板上的S端口是否有连接设备的程序呢?我的意思是说想写个测试电脑主板上S端口的代码来测试这个端口,如果S端口上连接有比如说电视机那么就弹出消息框告诉用户S端口上有连接设备,如果S端口上没有连接设备的话,也会弹出消息框告诉用户S端口上没有连接设备.这样.请教专家,如果写能实现这个目地的代码的话,应该如何写呢?请专家帮我写个能实现这目地的VB代码.谢谢!
04 23rd, 2009
Dim f As Form
For Each f In Forms
If Val(Right(f.Name, 2)) >= 14 And Val(Right(f.Name, 2)) <= 51 Then f.Hide
If Val(Right(f.Name, 2)) >= 3 And Val(Right(f.Name, 2)) <= 10 Then f.Hide
Next
Form59.Hide
为什么和
我调用 call hhtt 效果不一样
Public Sub hhtt()
Form3.Hide
Form4.Hide
Form5.Hide
Form6.Hide
Form7.Hide
Form8.Hide
Form9.Hide
Form10.Hide
Form14.Hide
Form15.Hide
Form16.Hide
Form17.Hide
Form18.Hide
Form19.Hide
Form20.Hide
Form21.Hide
Form22.Hide
Form23.Hide
Form24.Hide
Form25.Hide
Form26.Hide
Form27.Hide
Form28.Hide
Form29.Hide
Form30.Hide
Form31.Hide
Form32.Hide
Form33.Hide
Form34.Hide
Form35.Hide
Form36.Hide
Form37.Hide
Form38.Hide
Form39.Hide
Form40.Hide
Form41.Hide
Form42.Hide
Form43.Hide
Form44.Hide
Form45.Hide
Form46.Hide
Form47.Hide
Form48.Hide
Form49.Hide
Form50.Hide
Form51.Hide
Form59.Hide
End Sub
该怎么改才能和call hhtt 效果一样
04 23rd, 2009
有一个关于C++, Dll, 和VB的简单问题困扰着我很久,但是由于不是很了解VB,所以提出这个问题。但是不知道在这个版面提出这个问题是否合适,但是我确实找不到一个更加合适的版面发布了。
项目需要编写一个基于C++的Dll,提供给其他工程调用,这些工程包括VB和C++。在Dll中实现一些对文件的基本操作,初步设想建立几个基本对象。如果不支持Vb工程调用的话,直接输出工具类即可。不知道VB工程如何声明在这个Dll中定义的工具类?
还要注意一些调用的约定,比如标准约定还是用C约定
在DLL中適當的宣告輸入函式樣式, 是可以被其他工程調用的…
extern "C" __declspec(dllexport) bool __stdcall GetPlugInModuleClassName(char * cPlugInModuleCalssName);
Declare Function GetPlugInModuleClassName Lib "../testdll_library.dll" (ByVal() t As Byte) As Boolean
感谢VCRWX和jame2001,你们提示注意的问题,我也清楚。可能是我没有把问题陈述清楚,我举一个例子。
我自定义一个数据对象比如是CObject,然后在CUtilitly中实现一个函数SampleFunction,希望这个函数返回指针(CObject㗯🙦෧晦¥㽥𐦨⫖B工程调用,如何调用?
谢谢!
COM
应为现在要写的Dll要求支持windows和linux,所以放弃使用COM
BTW,COM在windows和linux上调用,假设在拥有源代码的情况下,是不是只需要在linux上重新编译就ok了?
无论是dll还是com、cobra,接口都需要使用纯C接口。
纯C接口?不是很明白,能具体解释一下吗?自定义数据类型不是纯C的语法吗(弱弱的问)?
请问VB高手,在Dll中定义的数据类型,做为函数的返回值,如何在VB工程中声明,调用?
是不是问题太简单了,各位高人都不关注啊!
在 VC++ 中写一个标准的 DLL 是很方便的。
创建新工程,选 MFCAppWizard(dll),起一个工程名(DLL 文件名),选择保存路径,缺省选择 Win32 平台。
在下一屏上,缺省选 Regular DLL using shared MFC DLL 和 Yes, please. 确定
在 IDE 界面上,打开 文件名.cpp 文件,添加你的函数。注意,所有要导出的函数均加上 __stdcall.
不需要采用导出语句,在 文件名.def 文件中列出你的导出函数名即可。
EXPORTS
; Explicit exports can go here
函数名1 @1
函数名2 @2
……
编译后,就可以在 VB 中调用了。
我关注的是如果是自定义的数据类型,如何在VB中声明和调用?
只要不是C++内部的对象,所有C++的标准数据类型都可以转换为VB的数据类型,包括结构。此外,还可以传递指针,在VB里可以使用CopyMemory进行存取。
比如__int64,在VB里就可以使用Currency相对应,或者使用DIM V(2) AS LONG,因为二者一样大小,但VB不能直接存取此变量,而是按高32位和低32位分解后,使用COPYMEMORY存取。
比如自定义类型CUserDefinedObj,在工具类CUtility中输出接口Function(),其返回值是CUserDefinedObj㗯B中如何声明呢?希望详解!
比如自定义类型CUserDefinedObj,在工具类CUtility中输出接口Function(),其返回值是CUserDefinedObj㗯B中如何声明呢?望详解!
是不是只需要将CUserDefinedObj重新在VB中声明一下,包括其中所有的函数接口就ok了?
不行,CUserDefinedObj是一个C++的类对象,如果真想在VB里访问,则用C++编一个ActiveX DLL,然后将CUserDefinedObj构造为一个相应的COM对象,再以COM方法和属性的方式暴露对象的变量和成员函数。
因为当前设计的Dll需要支持Linux,不知道ActiveX Dll是否可以在Linux上通信?
一般不能(尽管有wine之类的Windows仿真环境,不过没用过,所以不也乱说)。
既然要支持Linux,那么MFC和ActiveX都不能用了,只能用标准的C++编写标准的DLL,这样一来对Linux C没有问题,但VB里只能当作动态链接库进行使用,因此,不要直接显露C++对象,而是提供相关的函数和参数来操作和控制DLL里的对象,一句话,导出函数的参数尽量使用ANSI C的数据类型,包括指针和结构(不含成员函数),但不能使用类,甚至类指针,因为类指针对VB来说用途不大(基于COM接口的除外)。
从你这里,我得到了确认的答案。那么有产生了新的问题,举个例子:
class CUserDefinedObject
{
……….
}
希望实现如下的工具函数
class CUtility
{
AddObject(const char* strId, CUserDefinedObject& result);
}
按照上述的讨论,这种接口设计(AddObject(const char* strId, CUserDefinedObject& result);)是实行不同的,但是我又想操作这个函数的结果,如何设计呢?
04 22nd, 2009
详解 vb 控制 ppt
1用 OLe 控件,如何去除 播放时的菜单
"编辑"浏览""帮助",用设置 MenuBar 无效的方法无法实现屏蔽。
2用 dsoFrame 控件,如何控制翻页 ,不知如何使用接口。
3用 PPT Viewer控件,如何解决黑屏问题,
载入时黑屏,不爽。
注意是让PPT在控件内播放,不是调用PPT 程序
楼上麻烦加一些注解。
另外,你解决的是 三个问题中的哪一个?
或者是 另外的方案?
无满意答案,结贴吧!
用 Edraw Office Viewer 能达到效果,可惜没有破解版。
http://ufo-crackerx.blog.163.com/
现在的人真是,贴代码到是很快,连加个注释的时间都没有?
帮忙的话,不管是大忙小忙都是帮了,都该感激,你觉得呢