| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:C++与VB能不能一起用?
只看楼主 加入收藏
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
结帖率:86.21%
收藏
已结贴  问题点数:0 回复次数:6 
C++与VB能不能一起用?
初一我学C++的,现在暑假老师叫我学VB说,学VB很快,比C++简单(看书后有感觉)
现在很不熟悉VB的代码,总觉得C++要先进和灵活的多,所以,有些不牵扯到什么控件、窗体的代码我希望用C++完成
比如用C++的函数得到返回值再放到VB里,以及更复杂的,能实现吗?高手们
2011-07-10 20:42
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:3 
当然可以,VB Call C,VB当窗体,C当核心,进阶一点都这样玩的~
用C编DLL让VB去引用,执行速度上也比纯VB快的多,加上VB只能跑单线程,
用了C就能跑多线程了,流程灵活度就大大提升,但是复杂度也会跟着提升~

不要選我當版主
2011-07-10 21:09
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:0 
回复 2楼 wube
你说的好像很有趣,什么意思我不大懂,说明白、简单点好吗?
2011-07-11 06:08
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
回复 3楼 lyj23
不知道这样说行不行~自己写适合自己用的API...
VB引用的API或调用DLL或一些底层控制功能单用VB中不容易实现时~就要靠C来帮忙了~
具體的這篇 https://bbs.bccn.net/thread-345173-1-1.html
我附的档案里就有API的相关使用~你必须先知道怎用C编DLL档~就是一般说的函示库~
然后再知道怎用VB中去呼叫出来使用~如果你的C++很熟应该没问题~
(也就两句话~VB 怎Call C~C怎被 VB Call)

当然中间还有些难关~如C的INT和VB中的INT不一样之类的....等很多~
个人觉得纯VB玩玩交作业可以~要真的要工程实用或卖钱~没C不行~

不要選我當版主
2011-07-11 10:02
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
DLL编成我是用VC的,过程不清楚是不是正确,是摸索出来的,简单的说~
先开VC,然后New Project选择Win32 Dynamic-Link Library~

这样VC会帮你把环境建好并且把Main()改成DllMain()~
程序代码:
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    return TRUE;
}


然后开始写函式开头要加 _stdcall,VB才Call的到~
例如:
程序代码:
bool _stdcall AAA(int opt,char *FileNames, char *TmpFileNameStr, char *E_FileName)
{
    //XXXX
}


然后要编Def档做接口对应,当然函式原型声明也少不了,
之后编出DLL档,再到VB里面引用~
Def Sample :
程序代码:
;XXX.def
LIBRARY XXX
EXPORTS
  AAA @1
  BBB @2
  CCC @3
  DDD @4
  EEE @5
....


VB6 Sample Code :
程序代码:
Declare Function 函式名称 Lib "DLL名称.dll" (ByVal opt As Integer, ByVal FileName As String, ByVal TmpFileNameStr As String, ByVal E_FileName As String) As Boolean

.....
    Call CheckFileFolder(filecount, FileName, TmpFileNameStr, E_FileName)    '获取参数资料
    a = 函式名称(opt, FileName, TmpFileNameStr, E_FileName)
.....

Private Sub CheckFileFolder(xxx as xxx,....,...,...)
    'XXXXX
End Sub


还有很多变化~C实在是太深奥了~

[ 本帖最后由 wube 于 2011-7-12 16:55 编辑 ]

不要選我當版主
2011-07-11 13:14
XiaoRole
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2010-8-12
收藏
得分:3 
对了你要是实在不想学vb的话就用C++Builder吧
2011-07-11 20:56
niu91
Rank: 2
等 级:论坛游民
帖 子:64
专家分:44
注 册:2009-7-25
收藏
得分:3 
在VB里用C 学习了
2011-07-12 14:16
快速回复:C++与VB能不能一起用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025844 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved