C++\VC\VB 三种编程语言各个的优点和缺点。

2024-04-30 02:11

1. C++\VC\VB 三种编程语言各个的优点和缺点。

1.Visual Basic Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。可以说VB是红极一时,在网络上学习教程、代码等各种资料也很多,但是现在用的人是越来越少了。 

2.C++ 这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 是较c更高级的一种语言,C++语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。 

3.VC++像VB一样是微软公司开发的一个IDE(集成开发环境),,此语言基于C++,但是有不同于C++,可以看做是C++语言的一个“微软化”,是Windows化后的C++语言,开发环境集成多种控件,窗口下通过“拖拖、拉拉”,就可以快速制作出一个简单拥有Windows标准界面的程序,除此以外还提供可以实现各种功能的API,并且还提供封装了API的基础类库,使之使用此语言很容易开发出具有Windows特点的应用程序。 

我个人感觉,开发一个使用在Windows下的软件,用VB、VC都可以,但要做到界面美观漂亮用VB更容易些,并且现在网络上的资料也多,容易找到,但是VC、VC++的使用现在也在普及中。而C++可以说是一个规范,现在的C++编译器或多或少都对它进行了扩充,集成了更多东西,直接使用C++开发程序效率很低,但是更具灵活性。

建议楼主学C++吧,基础打好了其他的,就是熟悉开发环境的事了。无论学哪个学精了,做出点东西来,都好使。

C++\VC\VB 三种编程语言各个的优点和缺点。

2. 将此VC 函数改写成VB函数

---- 对于大多数VB的爱好者来说,在很多情况下都想通过使用API函数来实现一些比较高级的功能或达到某种特殊效果,这就需要用到一些VC++的代码.

---- 本文就如何把VC++代码转换成VB代码给出了一些策略和方法.

---- 1.定义常量

---- 我们首先看第一个例子:

#define STD_COPY 1//COMMCTRL.H

---- 在VC++代码中用#define定义常量,而在VB中是用Const来定义,因此转换成VB的代码是:

Public Const STD_COPY=1

---- 第二个例子:

#define LB_SELECTSTRING0x018C //WINUSER.h

---- 这有一个问题,VC++中所有以"0x"开头的值是十六进制,而在VB中表示十六进制要用"&H"开头.因此转换成VB的代码为:

Const LB_SELECTSTRING = 0x018C

---- 第三个例子:

#define TCN_FIRST(0U-550U)

---- 这里有个特别的是定义的值是以"U"结尾,这是意味着该常量的类型是"unsigned long"(在VB中不支持 该数据类型).但是unsigned long和signed long(在VB中是Long)两种数据类型的值在存储方式上是一样 的,只是表现的形式不同.因此,我们只需要去掉末尾的"U"就可以了.

Const TCN_FIRST=(0-550) 这同样适合以"L"结尾的值

---- 另外,对于 #define CDDS_ITEMPOSTERASE(CDDS_ITEM | CDDS_POSTERASE),我们需要用"Or"来取代"|"

---- 2.结构的定义

---- 我们先看VC++定义的一个比较简单的结构:

typedef struct tagTBSAVEPARAMSA{
HKEY hkr;
LPCSTR pszSubKey;
LPCSTR pszValueName;
}TBSAVEPARAMSA,FAR* LPTBSAVEPARAMSA;

---- 首先我们需要把第一行的"typedef struct"转换成"Public Type"

Public Type tagTBSAVEPARAMSA

---- 然后处理结构成员,

HKEY hkr;
LPCSTR pszSubKey;
LPCSTR pszValueName;

---- 对于第一个成员类型HKEY.我们要知道VC++中的以"H"开头的大部分数据类型代表的是某种句柄.在VB中每一个Form对象和许多控件都有一个hWnd属性,它代表所属窗口的句柄.hWnd的类型是Long,并且所有用来存储句柄的变量类型都是Long.因此,该成员在VB中定义为:

hkr As Long

---- 同样的,VC++数据类型LPSTR和LPCSTR代表指向字符串的指针,在VB中可以当作String类型.因为当你传送结构给API时,VB将把结构中所有的String转换成指向ANSI字符串的指针.因此后两个成员在VB中表示为:


pszSubKey As String
pszValueName As String

对于最后一行"}TBSAVEPARAMSA,FAR*
LPTBSAVEPARAMSA;"我们只需要用
"End Type"取代

---- 就可以了.转换成VB代码后完整的结构为:


Public Type tagTBSAVEPARAMSA
hkr As Long
pszSubKey As String
pszValueName As String
End Type

---- 以下是VC++中数据类型对应到VB中的数据类型VC++数据类型VB数据类型

------------------------------------
short Integer
intLong
long Long
UNIT Long
ULONG Long
WORD,DWORD Long
WPARAM,LPARAM Long
WMSG,UMSGLong
HRESULT Long
BOOL Boolean
COLORREF Long
HWND,HDC,HBRUSH,HKEY,等等. Long
LPSTR,LPCSTRString
LPWSTR,OLECHAR,BSTR String
LPTSTRString
VARIANT_BOOLBoolean
unsigned char Byte
BYTE Byte
VARIANT Variant
(任何以*或**结尾的数据类型)Long

---- 3.函数的转换

---- 我们知道VB提供了API Viewer add-in,但是有很多API函数它并没有包括在内. 因此知道如何把VC++函数转换成VB的函数格式是非常重要的.先看第一个例子:

WINCOMMCTRLAPI HWND WINAPI
CreateStatusWindowsA(LONG style,
LPCSTR lpszTest,HWND hwndParent,UINT wID);

---- 这个函数创建一个StatusBar控件.从WINCOMMCTRLAPI可以得知该函数来自动态 链接库ComCtl32.dll.(有时,我们需要从MSDN中查找某函数对应的DLL) 然后我们知道该函数的返回类型是HWND,对应VB的类型是Long.最后,根据前面提到 类型对应表,很容易的转换相应的函数参数.

Public Declare Function CreateStatusWindowA Lib
"ComCtl32.dll" _
(Byval style As Long, _
Byval lpszText As String, _
Byval hwndParent As Long,Byval wID As Long) As Long

3. VC++ 和 VB 哪个编程更好一点

Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。  
  (3)众多的控件让编程变得象垒积木一样简单。  
  (4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。  
  缺点  
  (1)Visual Basic 不是真正的面向对象的开发文具。  
  (2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。  
  (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢 
 优点  
  (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。  
  (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。  
  (3)VC是微软制作的产品,与操作系统的结合更加紧密。  

  缺点  
  对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。  

  综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

VC++ 和 VB 哪个编程更好一点

4. 我是电脑新手,只会基本的使用技巧,想进发为菜鸟,学学普通编程之类的,推荐本书,顺便解释VB\VC的意思。

。。。破解开机密码还是直接用网上的工具吧,这个和编程没多大关系
学编程,这个范围太大了,如果只是想做做小东西的话。
学c#吧,简单容易上手,《c# step by step中文版》跟着这本书走。。。
如果是想往程序员这方面发展,现在只是作为一个基础,那么直接学c++ primer
只要你c++学懂了,其他大多数程序语言也都大同小异学起来很快。

5. 如何实现VB和VC的联合调试

我现在想调试我的DLL和EXE,在VB环境下调试,可是我无法跳入DLL函数的内部,无法在DLL内部调试。
有没有一个办法能让我实现VB和VC联调,当我在VB环境中需要跳入DLL函数时,进入VC环境,在VC中调试,这样我就可以查看变量值、设置断点,然后等函数返回时又回到VB环境下继续调试。
后来经过我自己的一番摸索,终于实现了VB、VC联调。
这个方法是以VC为主环境,VB为副环境,这是因为DLL是由VC编写的,而在调试DLL的时候一般会让我们指定一个EXE。如果DLL是VB编写的,我想应该是以VB为主环境(没有测试过)。
1. 建立一个VB Standard EXE工程project1.vbp,在这个工程中调用VC编写的动态连接库中的函数。
2. 建立一个VC DLL工程TestDll,编写代码实现函数输出。建议把整个工程目录放置到project1.vbp所在的目录。
3. 设置VC工程,这一步是非常重要的,是实现联调的关键。
a) 更改General选项卡中OutPut Files的路径,指定到project1.vbp所在的目录。由于我把工程目录放在了project1.vbp目录下,因此我这里用相对路径“..\”(其实就是project1.vbp所在的目录)。
b) 更改Debug选项卡中Executable for debug session:为你电脑中VB6.exe;更改Working directory为project1.vbp所在的目录;在Program arguments:中填写project1.vbp,这个参数其实是传给VB的,让VB打开project1.vbp,如果增加参数”/r”,那么在VB启动后立即开始(相当于按F5),如果不增加参数”/r”,那么需要手动开始。
c) 确认你的Link选项卡中输出DLL的路径及DLL名称,把他设定到project1.vbp所在的目录:
4. 在你的DLL源程序(VC中)中设定断点,按F5, GO!怎么样,VB环境已经运行起来了,工程project1.vbp已经打开了吧!如果你在3)b.的Program arguments:中指定了”/r”参数,那么这个时候程序已经开始运行了,如果你没有指定这个参数,那么你可以先在VB环境中设定断点,然后在调用DLL函数上设置断点,按F5,Start!如果在VB中遇到断点,程序就会停下,然后按F8,Step into! 发现什么了,哈哈,VC环境主动切换到前面,而且当前的箭头已经指向了被调用函数了,这个时候,已经进入VC环境了,你想怎么调试都可以!当被调用函数要结束时,请按F11,Step Out,否则会有一段汇编代码。这个时候VB环境有主动切换到前面,又进入VB调试环境了!
在用VC编写DLL时要注意,VC会对输出函数名进行一些修饰,所以还是需要在def文件中明确输出函数名。

如何实现VB和VC的联合调试

6. C++/C/C#/VC++/VB解一元一次方程、二元一次方程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 方程式求解
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一元一次方程的系数(按ax+b=c标准格式)");
            Console.Write("a:");
            float a = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("b:");
            float b = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("c:");
            float c = (float)Convert.ToDouble(Console.ReadLine());
            float x = (c - b) / a;
            Console.WriteLine("此方程的解为:x={0}",x);

            Console.WriteLine("请输入二元一次方程组的系数(按a1x+b1y=c1,a2x+b2y=c2标准形式)");
            Console.Write("a1:");
            float a1 = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("b1:");
            float b1 = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("c1:");
            float c1 = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("a2:");
            float a2 = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("b2:");
            float b2 = (float)Convert.ToDouble(Console.ReadLine());
            Console.Write("c2:");
            float c2 = (float)Convert.ToDouble(Console.ReadLine());
            float x1 = (c1 - c2 * (b1 / b2)) / (a1 - a2 * (b1 / b2));
            float y1 = (c1 - a1 * x) / b1;
            Console.WriteLine("此二元一次方程组的解为:x={0},y={1}",x1,y1);
            Console.ReadKey();


        }
    }
}

7. 如何在VC\VB中建立和使用数据库

C,C++,JAVA,再就是VC,VC++,VB,VF都是干什么的啊,还有就是VB.NET等,请详道来 
这些都是用于程序设计的 
C语言以一种比较基本的面向过程语言,比较低级。C++和Java则是面向对象的语言,Java相对C++会高级一些。这里所谓的高级低级不是说这个语言本身的优劣,而是说它们所关心的层面里用户的远近,离得远则低级,离得近则高级。 
VC、VC++全称Visual C++,是微软出品的C++编译器软件及其相应的类库,可以用于Windows下C++程序设计及软件开发,一般用于开发系统软件,应用软件及游戏等。 
VB全称Visual Basic,是微软出品的Basic编译器软件及其相应的类库,可以用于Windows下软件开发,可以用于编写应用软件、游戏等。 
VF全称Visual FoxPro,数据库编程系统,也是微软的产品。 
VB.NET就是Visual Basic .NET,是微软推出.NET战略后的Visual Basic产品,用其所写程序一般运行于.NET平台上,可以用来制作网站和编写软件。 
关于这些软件的详细情况,lz可以搜索百度百科的相应词条,那里面都很详细。 
如果楼主想学习编程,不必要把这些都学了,如果有一项你能精通,那都是很不得了的事!我是说 精通!都学的话,人的精力有限,不可能都精通,每个都学个皮毛,一点用处都没有,只能骗骗5岁以下的小孩:)。 
给你讲讲我的学习经历,当初我没学C,直接学的C++,当然学习周期很长,而且比较枯燥,但坚持下来就好了。现在我工作中以C++和Java为主,C偶尔使用。其实回了一种语言,其他的语言相对就比较容易了,因为它们长得都很像。 
我建议lz从Java或C#开始(只要学一种啊,不要贪多,不然浪费时间),先买一本书或找些教程,把java/C#的语法学好,每本书里面肯定会涉及到一些类库方面的东西,可以适当看看。在学习java/C#的时候,面向对象的思想的建立我觉得是最关键的。当然,刚刚开始可能会有些弄不明白为什么这么写的地方,这些地方先不要管,照书上先抄下来去运行,随着后面的学习这些问题你会逐步清楚的。 
我个人觉得java的学习过程要比c容易一些,而且效果会好些。毕竟c的学习基本是以语法为主,但c的程序基本上就是黑屏上面几个白字的状态,不利于初学者建立学习兴趣和成就感,比较容易坚持不下去。java/C#这方面则强得多。

如何在VC\VB中建立和使用数据库

8. VB调用VC++做的DLL,传递参数问题

VB程序在调试的时候工作目录是Vb的安装目录,编译成exe了工作目录就是exe的目录了,你只要把dll文件复制到VB的目录下就行了.
最新文章
热门文章
推荐阅读