윈도우 프로그래밍을 해보는 것에 대한 많을 옵션들이 존재한다고 생각한다.
해본적은 없지만, Qt가 젤 유명 할 것 같고, 몇 몇 예제와윈도우를 돌려본 wxWidgets 도 유명할 것 같다. 그리고 SWT도 있고..언급한 것 중에 해 본 것이라고는 wxWidgets 밖에 없으므로 그냥 넘어가기로 한다.
그이외에도 여러 가지 UI를 구성할 수 있는 프레임워크들이 많이 존재 할 것으로 보인다.
다만, 자바에서도 스윙을 작성하는 것이 기본이듯이(물론 AWT가 먼저이기는 하지만javaFX 가 나왔으니…), 윈도우 프로그래밍도 윈32로작성하는 것이 우선이 아닐까 하는 생각에서 이 윈32 프로그래밍을 해보기로 맘 먹었다. 그러면 어떤 도구를 사용해서 해 볼 것인가? 라는 물음에 먼저 대답해야 겠지.
여러 번 해봤던 MinGW 환경+ 이클립스 환경도 고려를 해 보았으나, 그것보다는 우선 해보고 싶은 것이 실제 윈도우를만든 마이크로 소프트사가 내놓은 비쥬얼 스투디오 시리즈를 써서 작성하는 것이 먼저 일 것이다.
돈을주고 사서 쓰는 것이 전세계 경제 부흥을 위해서 도움이 될 것이기는 하지만, 사실 공짜로 뭘 해보고싶은 맘은 언제나 맘 속에서 불쑥불쑥 튀어나와서는 들어가질 않는다…
무슨 얘기를 이렇게 길게 쓰고 있는지 모르겠지만 그래서, 이클립스와 Windows SDK 7으로 윈32 프로그래밍을 해 보기로 한다.
단순하게 생각하면, 윈도우 SDK 라는 놈이 있으니 여기에다가 이클립스를 붙여보면 될 것 아닌가? 라는 생각이 들었다는 것이다. 이렇게해서 개발환경이 구성이 된다면 그 이후에 윈32 프로그래밍 하는 것은 오히려 쉬울 수도 있을 것이다.
하지만…뭐 Windows SDK를 설치하는 동안 MFC를 써야하나 말아야 하나의 고민으로 몇 기가의 하드 공간을 잡아 먹을 수 있을 것이다.
그럼 윈32 프로그래밍을 해보기 이전에 우선 환경을 만들어 보는 것을해보기로 한다.
- 윈도우 SDK 설치하기
- 이클립스 설정하기
- 테스트 C/C++ 코드 작성하기
- 컴파일/실행 하기
1. 윈도우 SDK 설치하기
이는 벌써 뭐 읽기는 힘들겠지만, 저번 글에 남겨 놓은 것이 있으니, 참고 하도록 한다.
2. 이클립스 설정하기
이클립스에 마이크로소프트 사의 환경을 설정하기 위해서는 하나를다운받아서 설치 해야 한다. Install New Software를 선택하고 나서
위의 설정을 해 준 다음 OK를누르면
비주얼 스투디오 환경에 맞는 환경을 잡을 수 있는 내용들이 설치 된다.
출처: https://www.eclipse.org/forums/index.php/t/1083878/
그리고 이 설정이 끝나고 코드를 작성하기에 앞서 사전작업이 필요하다. 우선, 윈도우 컴파일러인 cl.exe 파일이 어디에 존재하는 지 알 필요가있다. 뭐 그럼 윈도우 검색으로 찾아 보자
위와 같이 한 네 개정도 나온다. 그럼 이것 중에 어느 것이 맞는 컴파일러인가? 알고 싶다면
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_ia64
뭐 유력한 것이 몇 개 있기는 하지만, 이렇게 cpu 아키텍처를 알기 위해서는 (우선 내 컴터는 윈도우 7 64비트이다.)
일단 SDK에서 제공하는프롬프트 창을 열고서
다음 명령어의 실행으로 현재 cpuarchitecture를 알 수 있다.
~\Microsoft SDKs\Windows\v7.1>set process
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 61 Stepping 4, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=3d04
그 이외에도 윈도우 SDK를사용해서 만들 수 있는 환경에 대해서 다음과 같은 명령어로 알 수가 있을 것이다.
~\Microsoft SDKs\Windows\v7.1>set lib
LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64;C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\X64;
LIBPATH=C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework\v3.5;;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64;
~\Microsoft SDKs\Windows\v7.1>set include
INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE;C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE;C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\gl;
~\Microsoft SDKs\Windows\v7.1>set path
Path=C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework\v3.5;;C:\Program Files (
x86)\Microsoft Visual Studio 10.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools;;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64;C:\Program Files (x86)
\Microsoft Visual Studio 10.0\VC\Bin\VCPackages;;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\x64;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64;C:\Program Files\Microsoft SD
Ks\Windows\v7.1\Bin;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\SoftCamp\SDS;C:\Windows\SoftCamp\SDS\x64;C:\Windows\SoftCamp\SDK;C:\
Program Files (x86)\SlikSvn\bin;C:\Program Files\TortoiseSVN\bin;C:\Windows\SoftCamp\SDK\x64;C:\Python27;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft
Windows Performance Toolkit\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
그럼 이런 배경 지식을 알았으니 실전에 들어가기로 한다.
우선 새로운 프로젝트를 생성해보자. 다음과 같은 순서로 새로운 프로젝트를 생성해 준다.
3. 테스트 C/C++ 코드 작성하기
테스트 코드는 이클립스에서 추천해 주는 코드로..
//============================================================================
// Name : First.cpp
// Author : tommybee
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
4. 컴파일/실행하기
이렇게 만들어 진 소스를 컴파일 해 보면 이상 없이 컴파일 될것이다.
이상없이 컴파일 되는 것은 윈도우 SDK를 제대로 설치해서 환경 설정 경로이 이미 반영 되었기 때문이 아니었나 하는 생각이 든다.
이 두 환경 설정에서 지금 환경처럼 제대로 라이브러리 경로 헤더경로 및 컴파일러 위치까지 나와 있다면 이상 없이 모든 것이 빌드 될 수 있을 것이라고 본다.
윈32 프로그래밍은시간 관계상 다음 여력이 되는 데로 해보는 것으로 한다.
▶ 참고로 위의 이클립스에서 쓰여진 테마는 darkest-dark-theme 마켓에서 찾으면 나온다.
이상.
'프로그래밍' 카테고리의 다른 글
Load-time relocation of shared libraries (0) | 2023.03.09 |
---|---|
윈도우 SDK와 커맨트 프롬프트를 이용한 C++ 프로젝트 컴파일하기 (0) | 2023.02.26 |
C# - Thread (0) | 2023.02.24 |
Mosquitto와 Paho 클라이언트라이브러리를 사용 (0) | 2023.02.22 |
DLL 인젝션 - 간단한 예제 - notepad (0) | 2023.02.21 |