Visual Basic

덤프버전 :

파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
벨기에의 정당 VB에 대한 내용은 플람스의 이익 문서
플람스의 이익번 문단을
플람스의 이익# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





파일:Microsoft 로고.svg

[ 펼치기 · 접기 ]

||<-2><tablebgcolor=#FFFFFF,#1F2023><bgcolor=#888888,#2D2F34><tablewidth=100%> 산하 계열사 및 사업부 ||
||<-2><width=100%> GitHub · .NET Foundation · Xbox Game Studios · LinkedIn ||
||<-2><bgcolor=#888888,#2D2F34><width=100%> 제품군 ||
||<bgcolor=#888888,#2D2F34><width=15%> 하드웨어 ||Surface · Xbox · HoloLens · PixelSense · Zune ||
||<bgcolor=#888888,#2D2F34> 소프트웨어 ||Windows · Office · Edge · Hyper-V · MS-DOS · Groove 음악 · Microsoft Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft PowerToys · Internet Explorer · Windows Media Player · Windows Movie Maker ||
||<bgcolor=#888888,#2D2F34> 서비스 ||Microsoft Azure · OneDrive · Skype · MSN · Bing · LinkedIn · 코타나 · 테이 · Xbox Live · 정품 인증 · MSDN ||
||<bgcolor=#888888,#2D2F34> 관련 기술 ||Windows 커널 · Windows 디자인 · ASF · 블레이저 · DirectX · FAT · NTFS · ReFS · MFC · .NET · COM · DCOM · OLE · ActiveX · ASP · Universal Windows Platform · WASAPI · WMA · WMV · Windows API · Windows Runtime · Xamarin · XNA · Silverlight ||
||<-2><bgcolor=#888888,#2D2F34><width=100%> 관련 인물 ||
||<-2><width=100%> 빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 사티아 나델라 · 필 스펜서 ||




프로그래밍 사이트 선정 프로그래밍 언어 순위 목록

⠀[ IEEE Spectrum 2021 ]⠀
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%"
⠀[ Stack Overflow 2022 ]⠀
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%">
⠀[ TIOBE 2023 ]⠀

프로그래밍 언어 목록 · 분류 · 문법

파일:vb6로드.png
1. 개요
2. 버전 분류
2.1. Visual Basic 1.0
2.2. Visual Basic 2.0 ~ 5.0
2.3. Visual Basic 6.0
3. VB 지원 종료 이후
4. 허술했던 라이선스 관리



1. 개요[편집]


Private Sub Form_Load()
        MsgBox "Hello world!"
End Sub
마이크로소프트 사에서 쉽고 간편하게 Windows 프로그램을 만들 수 있게 출시한 BASIC 프로그래밍 툴.

인터페이스가 매우 쉽고 간편하여 짧은 시간 안에 Windows 기반 프로그램을 만들 수 있다. 그리고 API, MFC처럼 코드로만 프로그래밍을 하는 것이 아니라, 도구 상자에 있는 여러 오브젝트들을 드래그 앤 드롭으로 프로젝트 내에 추가할 수 있다. 예를 들어서 API에서 커맨드 하나를 만드려면 긴 코드를 작성해야 하는데, 비주얼 베이직에서는 오브젝트를 끌어다 놓는 것 하나만으로 커맨드 하나를 만들 수 있다. 이처럼 쉬운 제작 환경 덕분에 다른 것들보다 훨씬 빨리 프로그램을 만들 수 있다.

후속작은 Visual Basic .NET(VB.NET)이다.


2. 버전 분류[편집]



2.1. Visual Basic 1.0[편집]


파일:vb1.0.png

1991년 5월에 발표되었다. 사진은 윈도우용 비주얼 베이직 1.0이며[1], DOS용으로도 출시되었다.

윈도우용 파일. 윈도우 3.x대 프로그램은 16비트 어플리케이션인데 64비트 윈도우는 16비트 애플리케이션 지원 기능이 없으므로(AMD64 참고) 네이티브 실행이 불가능하다. 따라서 32비트 OS(Windows XP 등)로 실행하거나 가상머신으로 MS-DOS를 설치하고 실행하면 된다. 아니면 도스용 비주얼 베이직을 구해서 도스박스로 구동시켜도 된다.

2.2. Visual Basic 2.0 ~ 5.0[편집]


파일:VB3-실행화면.png

각각 사용 가능 윈도우 버전이 올라갔다. 국내에서는 5.0 때부터 정보올림피아드 과제 수행을 하기도 하였다. 5.0부터는 16비트 윈도우에서 사용할 수 없다.


2.3. Visual Basic 6.0[편집]


파일:vb6로드.png
파일:vb6실행화면.png

1998년에 출시되었고, 2005년에 지원 중단된 Visual Basic의 마지막 버전. 아직도 점유율 20위 안에 드는 언어다. # 이 버전을 끝으로 .NET Framework 기반의 Visual Basic .NET으로 넘어갔다.

MS 오피스에서 사용되는 VBA의 기반이 되는 버전이기도 하다.

아직도 사용자가 많은 이유는 VB 6.0 다음 버전이 VB.NET이기 때문이다. 일단 호환도 안 될 뿐더러 VB 6.0은 절차 지향[2], VB.NET은 객체 지향 언어이기 때문에 아예 코딩하는 방식을 바꿔야 한다. 그래서 아직 VB 6.0을 고수하고 있는 사용자도 있다.

MS는 VB 6.0을 쓰지 말고 VB.NET을 써 달라고 부탁했지만 현실적으로 힘들다. 이미 VB의 압도적인 장점인 쉬운 GUI 구축과 VB 6.0의 장점인 가벼움이라는 무기로 수많은 프로그램들은 이걸로 만들어졌기 때문에 유지 보수에 VB.NET의 사용 가치가 없었다. 그마저도 VB 6.0 당시는 영문버전으로 하면 .exe 파일만으로도 구동되나,[3] .NET 프레임워크가 하루가 다르게 신버전이 나와, 프로그램 배포 무게가 점점 무거워졌다.

결과적으로 몇 천 줄 몇 만 줄 되는 코드를 함수, 변수 수정 같은 방식도 아니라 코딩 패러다임에 맞게 모두 갈아 엎기보다는 그냥 옛날 버전으로 프로그래밍 하는 게 낫다. Visual C++ 6.0도 비슷한 신세를 겪었지만 그래도 이쪽은 최신 버전의 비주얼 C++를 통해 컴파일을 시도라도 해볼 수 있었던 반면에, 상용 수준으로 개발된 VB 6.0 프로젝트를 닷넷으로 변환할 때에는 그야말로 건질 수 있는 게 없다시피 하므로 그냥 포기하고 새로 개발하는 편이 나을 정도. 그럼 그냥 새로 개발하면 되지 않느냐 하겠지만 "그랬다가 되던 기능 안 되면 니가 책임질래?" 또는 "저런 작업에 사용할 인력이나 예산 따윈 없음" 한마디면 회의실에는 적막만 감돈다. 정말 짜증난다면 개인 시간을 사용해서라도 다른 기술을 쓰되 동일한 기능을 가진 모듈을 개발해봐도 좋겠지만, 그런 노력에 환호하던 사람들도 기능이나 호환성 문제 발생시 본인에게 다 전가하려 할 것이다(...). 결국 그냥 예전에 되던 걸 그대로 다시 쓰는 게 모두가 원하는 일이니 오늘도 누군가는 윈도우 10에 VB 6.0을 설치할 수밖에 없는 것이다. 웬만한 검색엔진에 Visual Basic 6이나 Visual Studio 6까지만 쳐도 Windows 10/11에서 설치하는 방법이 자동 완성(...)으로 뜨는 것은 이런 이유.

이 때문에 매년 VB 6.0을 지원해 달라고 프로그래머들은 MS에 진정서를 넣지만, MS는 여전히 VB.NET을 쓰라고 한다. 점점 OS 차원에서도 VB의 지원을 줄이고 있지만 그럼에도 불구하면서 아래와 같은 편법을 써서 계속 사용하는 사람들이 있다. 쓰레드는 Windows API로 쓰면 가능하며, 파일 삭제, 등의 입출력도 Windows API로 쓰면 한 방에 해결된다. MS는 이미 C와 같은 점유율도 높은 언어조차 제대로 지원하지 않고 있기에, 정식 지원에 대한 전망은 비관적이다. VB로 만들어진 프로그램이나 모듈을 사용할 때 나타날 수 있는 보안 취약점 정도나 겨우 수정되는 수준이고 이마저도 언제 중단될지 모르지만, 아마 취약점 해결마저 중단된다 해도 인터넷 연결을 하지 않는 장비 등에서 끈질기게 명맥을 유지할 것이다. 앞서 설명한 대로 그것밖에 답이 없으니까.

만약 VB 6.0을 Windows XP가 아닌 Windows 7에서 사용하려고 하면 가능하면 IE 10 이상으로 업그레이드하지 말자. IE 9까지는 괜찮지만, IE 10.0 이상으로 업그레이드 하면 기존 IE 8/9 기반 컨트롤(*.ocx) 일부를 사용할 수 없게 된다. 따라서 IE 9를 지원하지 않는 Windows 8 이상의 운영체제에서는 개발을 권장하지 않고 Windows 10 64비트에서는 아예 동작되지 않는 것으로 알려져 있다. (호환성 설정을 하면 구동은 가능하다.)[4]

백신이 컴파일 된 실행파일을 바이러스로 인식하는 경우도 있다. 대표적인 예로 알약이 있는데, 모처럼 수백/수천대에 배포했던 프로그램을 바이러스라며 한방에 다 삭제 시켜버리기도 했다. 뒤늦게 알약에 항의하면 바이러스항목에서 빼주나, 프로그램을 업데이트하면 다른 프로그램으로 인식해 다시 바이러스로 등록하는 웃지 못할 영업방해도 많았다. 알약을 안 쓰면 된다.

VB 6.0에서는 VC++ 6.0과 다르게 마우스 휠이 제대로 동작하지 않는 버그가 있다. #1 #2 IntelliPoint 소프트웨어가 버전 4.9 이상에서는 동작하지 않으므로 IntelliPoint 소프트웨어 버전 4.12 이전 드라이버를 사용하는 방법도 있다. 아니면 추가 기능으로 패치하는 방법이 있다.

VB 6.0 에서 작성된 응용 프로그램이 Windows 11에서도 제대로 실행된다고 한다. #실행화면 확인


3. VB 지원 종료 이후[편집]


Visual Studio .NET(2002)부터 VB는 사라지고 VB.NET(Visual Basic .NET)으로 대체되었다.


4. 허술했던 라이선스 관리[편집]


Visual Studio 6.0에 이르기까지 윈도우와 다르게 설치 시리얼키가 허술하게 관리되었다. 모든 시리얼키 입력창을 1로만 입력해도 통과되는 웃지 못할 일도 있었다. 때문에 정식 라이선스를 보유하고 있는 학원이나 업체조차 귀찮아서 111-1111111로 입력하는 경우도 있었다. 당시 구매가 백만 원이 넘어가는 프로그램에서 이를 보완하기 위한 서비스팩 1부터 서비스팩 7에 이르렀을 때까지 차단하거나 고쳐지지 않은 것을 보면 윈도우용 프로그램이 많이 생산되길 바랐거나 라이선스 관리 자체에 관심이 없었던 것으로 보인다. 일단 플랫폼을 장악하는 게 중요하거든. 참고로 이는 Windows 95Microsoft Plus!Windows NT 4.0에서도 먹히는 수법이다.
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-04 22:55:16에 나무위키 Visual Basic 문서에서 가져왔습니다.

[1] 표준 모드나 386 확장 모드에서만 실행된다.[2] 클래스 모듈이라는 객체와 유사한 기능이 있긴 하나, 상속 등의 기능이 제대로 지원되지 않고, 생성자에게 인자를 넘길 수 없다.[3] 이는 비주얼 베이직 실행 라이브러리인 msvbvm60.dll이 Windows에 내장되어 있기 때문이다. 영문 이외의 버전에서는 vb6XX.dll(한글은 vb6ko.dll) 파일을 시스템 폴더에 복사해줘야만 실행된다.[4] 다만 Windows 7 32비트 IE 11기준 설치 중에만 호환성 창만 한 번 뜨고 설치 및 실행은 문제없이 잘 된다.