검색결과 리스트
분류 전체보기에 해당되는 글 188건
- 2010.12.15 Windows 자동 실행 위치
- 2010.12.15 hosts파일 [ 윈도우 내부 DNS -> IP ]
- 2010.10.21 VS2008 컴파일러 옵션 1
- 2010.10.20 mutable
- 2010.10.20 explicit
- 2010.08.18 ms vs에서 포인터 변수에 들어가있는 값의 비밀
- 2010.08.10 API 파일 처리 유용함수
- 2010.08.04 릴리즈 디버깅시 최적화 하는것 막기
- 2010.07.21 D3DFont
- 2010.06.27 리눅스 커널 버전확인
글
Windows 자동 실행 위치
Windows 자동 실행 위치
DiamondCS 에서 제공하는 Autostart Guard, Autostart Viewer 프로그램이 모니터링하는 Windows 자동 실행 위치의 리스트 입니다.
웜, 바이러스 등에 감염되었을 때 한번쯤 살펴봐야 할 곳들이죠.
Autostart Locations are listed in no particular order.
Registry Autostart Locations
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
All values in this key are executed.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\
All values in this key are executed, and then their autostart reference is deleted.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\
All values in this key are executed as services.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\
All values in this key are executed as services, and then their autostart reference is deleted.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\
All values in this key are executed.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\
All values in this key are executed, and then their autostart reference is deleted.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup\
Used only by Setup. Displays a progress dialog box as the keys are run one at a time.
HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Run\
Similar to the Run key from HKEY_CURRENT_USER.
HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\RunOnce\
Similar to the RunOnce key from HKEY_CURRENT_USER.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
The "Shell" value is monitored. This value is executed after you log in.
HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\
All subkeys are monitored, with special attention paid to the "StubPath" value in each subkey.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\
All subkeys are monitored, with special attention paid to the "StaticVXD" value in each subkey.
HKEY_CURRENT_USER\Control Panel\Desktop
The "SCRNSAVE.EXE" value is monitored. This value is launched when your screen saver activates.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
The "BootExecute" value is monitored. Files listed here are Native Applications that are executed before Windows starts.
HKEY_CLASSES_ROOT\vbsfile\shell\open\command\
Executed whenever a .VBS file (Visual Basic Script) is run.
HKEY_CLASSES_ROOT\vbefile\shell\open\command\
Executed whenever a .VBE file (Encoded Visual Basic Script) is run.
HKEY_CLASSES_ROOT\jsfile\shell\open\command\
Executed whenever a .JS file (Javascript) is run.
HKEY_CLASSES_ROOT\jsefile\shell\open\command\
Executed whenever a .JSE file (Encoded Javascript) is run.
HKEY_CLASSES_ROOT\wshfile\shell\open\command\
Executed whenever a .WSH file (Windows Scripting Host) is run.
HKEY_CLASSES_ROOT\wsffile\shell\open\command\
Executed whenever a .WSF file (Windows Scripting File) is run.
HKEY_CLASSES_ROOT\exefile\shell\open\command\
Executed whenever a .EXE file (Executable) is run.
HKEY_CLASSES_ROOT\comfile\shell\open\command\
Executed whenever a .COM file (Command) is run.
HKEY_CLASSES_ROOT\batfile\shell\open\command\
Executed whenever a .BAT file (Batch Command) is run.
HKEY_CLASSES_ROOT\scrfile\shell\open\command\
Executed whenever a .SCR file (Screen Saver) is run.
HKEY_CLASSES_ROOT\piffile\shell\open\command\
Executed whenever a .PIF file (Portable Interchange Format) is run.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
Services marked to startup automatically are executed before user login.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2\Parameters\Protocol_Catalog\Catalog_Entries\
Layered Service Providers, executed before user login.
HKEY_LOCAL_MACHINE\System\Control\WOW\cmdline
Executed when a 16-bit Windows executable is executed.
HKEY_LOCAL_MACHINE\System\Control\WOW\wowcmdline
Executed when a 16-bit DOS application is executed.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
Executed when a user logs in.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\
Executed by explorer.exe as soon as it has loaded.
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\run
Executed when the user logs in.
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
Executed when the user logs in.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run\
Subvalues are executed when Explorer initialises.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run\
Subvalues are executed when Explorer initialises.
Folder Autostart Locations
windir\Start Menu\Programs\Startup\
User\Startup\
All Users\Startup\
windir\system\iosubsys\
windir\system\vmm32\
windir\Tasks\
File Autostart Locations
c:\explorer.exe
c:\autoexec.bat
c:\config.sys
windir\wininit.ini
windir\winstart.bat
windir\win.ini - [windows] "load"
windir\win.ini - [windows] "run"
windir\system.ini - [boot] "shell"
windir\system.ini - [boot] "scrnsave.exe"
windir\dosstart.bat
windir\system\autoexec.nt
windir\system\config.nt
'컴퓨터' 카테고리의 다른 글
아파치 재시작 (0) | 2011.12.14 |
---|---|
콘솔 리다이렉션 (0) | 2011.12.09 |
리눅스 하위 폴더 용량 확인 (0) | 2010.12.17 |
hosts파일 [ 윈도우 내부 DNS -> IP ] (0) | 2010.12.15 |
리눅스 커널 버전확인 (0) | 2010.06.27 |
글
hosts파일 [ 윈도우 내부 DNS -> IP ]
특정 도메인의 IP를 조작한다
C:\WINDOWS\system32\drivers\etc\hosts
안에
xxx.xxx.xxx.xxx dns.dns.dns
127.0.0.1 activate.adobea.com
74.208.101.249 gs.applea.com
위와같이 필요한것들을 적어준다
라고 적어주심 ㅇㅋ
'컴퓨터' 카테고리의 다른 글
아파치 재시작 (0) | 2011.12.14 |
---|---|
콘솔 리다이렉션 (0) | 2011.12.09 |
리눅스 하위 폴더 용량 확인 (0) | 2010.12.17 |
Windows 자동 실행 위치 (0) | 2010.12.15 |
리눅스 커널 버전확인 (0) | 2010.06.27 |
글
VS2008 컴파일러 옵션
컴파일러 옵션 범주별 목록
다음은 범주별로 나열한 포괄적인 컴파일러 옵션 목록입니다. 사전순으로 나열된 목록을 보려면 컴파일러 옵션 사전순 목록을 참조하십시오.
최적화
옵션 | 용도 |
---|---|
/O1 | 작은 코드를 만듭니다. |
/O2 | 빠른 코드를 만듭니다. |
/Oa | 별칭 없음으로 가정합니다. |
/Ob | 인라인 확장을 제어합니다. |
/Od | 최적화를 사용하지 않습니다. |
/Og | 전역 최적화를 사용합니다. |
/Oi | 내장 함수를 생성합니다. |
/Op | 부동 소수점 일치를 향상시킵니다. |
/Os | 코드 크기를 우선으로 합니다. |
/Ot | 코드 속도를 우선으로 합니다. |
/Ow | 함수 호출에 별칭을 가정합니다. |
/Ox | 최대 최적화(/Ob1gity /Gs)를 사용합니다. |
/Oy | 프레임 포인터를 생략합니다. |
코드 생성
옵션 | 용도 |
---|---|
/arch | 코드 생성 시 SSE 또는 SSE2 명령을 사용합니다. |
/clr | Managed Extensions for C++를 사용하고 공용 언어 런타임에서 실행할 출력 파일을 생성합니다. |
/EH | 예외 처리 모델을 지정합니다. |
/G3 | 386 프로세서에 맞게 코드를 최적화합니다. Visual C++ 5.0에서 사용하면 컴파일러가 이 옵션을 무시합니다. |
/G4 | 486 프로세서에 맞게 코드를 최적화합니다. Visual C++ 5.0에서 사용하면 컴파일러가 이 옵션을 무시합니다. |
/G5 | Pentium에 맞게 코드를 최적화합니다. |
/G6 | Pentium Pro, Pentium II 및 Pentium III 프로세서에 맞게 코드를 최적화합니다. |
/G7 | Pentium 4 또는 Athlon 프로세서에 맞게 코드를 최적화합니다. |
/GB | /G6와 동일하며 _M_IX86 값을 600으로 설정합니다. |
/Gd | __cdecl 호출 규칙을 사용합니다. |
/Ge | 스택 조사를 활성화합니다. |
/GF /Gf |
문자열 풀링을 사용합니다. |
/Gh | 후크 함수 _penter를 호출합니다. |
/GH | 후크 함수 _pexit을 호출합니다. |
/GL | 전체 프로그램 최적화를 사용합니다. |
/Gm | 최소 재빌드를 사용합니다. |
/GR | RTTI(런타임 형식 정보)를 사용합니다. |
/Gr | __fastcall 호출 규칙을 사용합니다. |
/Gs | 스택 조사를 제어합니다. |
/GT | 정적 스레드 로컬 저장소를 사용하여 할당한 데이터의 파이버 안전을 지원합니다. |
/GX | 동기 예외 처리를 사용합니다. |
/Gy | 함수 수준 링크를 사용합니다. |
/Gz | __stdcall 호출 규칙을 사용합니다. |
/MD | MSVCRT.lib를 사용하여 다중 스레드 DLL을 만듭니다. |
/MDd | MSVCRTD.lib를 사용하여 디버그 다중 스레드 DLL을 만듭니다. |
/ML | LIBC.lib를 사용하여 단일 스레드 실행 파일을 만듭니다. |
/MLd | LIBCD.lib를 사용하여 디버그 단일 스레드 실행 파일을 만듭니다. |
/MT | LIBCMT.lib를 사용하여 다중 스레드 실행 파일을 만듭니다. |
/MTd | LIBCMTD.lib를 사용하여 디버그 다중 스레드 실행 파일을 만듭니다. |
출력 파일
옵션 | 용도 |
---|---|
/FA /Fa |
목록 파일을 만들고 목록 파일 이름을 설정합니다. |
/Fd | 프로그램 데이터베이스 파일 이름을 바꿉니다. |
/Fe | 실행 파일 이름을 바꿉니다. |
/Fm | 맵파일을 만듭니다. |
/Fo | 개체 파일을 만듭니다. |
/Fp | 미리 컴파일된 헤더 파일 이름을 지정합니다. |
/FR /Fr |
브라우저 파일을 생성합니다. |
/Fx | 삽입된 코드와 소스 파일을 병합합니다. |
디버깅
옵션 | 용도 |
---|---|
/GS | 보안 검사를 버퍼링합니다. |
/GZ | /RTC1과 동일합니다. |
/RTC | 런타임 오류 검사를 사용합니다. |
/Wp64 | 64비트 이식성 문제를 검색합니다. |
/Yd | 모든 개체 파일에 완전한 디버깅 정보를 저장합니다. |
/Yl | 디버그 라이브러리를 만들 때 PCH 참조를 삽입합니다. |
/Z7 | C 7.0 호환 디버깅 정보를 생성합니다. |
/Zd | 줄 번호를 생성합니다. |
/Zi | 완전한 디버깅 정보를 생성합니다. |
전처리기
옵션 | 용도 |
---|---|
/AI | #using 지시문에 전달된 파일 참조를 확인하기 위해 검색할 디렉터리를 지정합니다. |
/C | 전처리하는 동안 주석을 유지합니다. |
/D | 상수와 매크로를 정의합니다. |
/E | 전처리기 출력을 표준 출력에 복사합니다. |
/EP | 전처리기 출력을 표준 출력에 복사합니다. |
/FI | 지정된 포함 파일을 전처리합니다. |
/FU | 파일 이름이 #using 지시문에 전달된 것처럼 사용되도록 합니다. |
/I | 포함 파일의 디렉터리를 검색합니다. |
/P | 전처리기 출력을 파일에 씁니다. |
/U | 미리 정의된 매크로를 제거합니다. |
/u | 미리 정의된 모든 매크로를 제거합니다. |
/X | 표준 포함 디렉터리를 무시합니다. |
/ZI | 편집하며 계속하기와 호환되는 프로그램 데이터베이스에 디버깅 정보를 포함합니다. |
언어
옵션 | 용도 |
---|---|
/vd | 숨겨진 vtordisp 클래스 멤버를 사용하거나 사용하지 않습니다. |
/vmb | 멤버의 포인터에 best case를 사용합니다. |
/vmg | 멤버의 포인터에 full generality를 사용합니다. |
/vmm | 다중 상속을 선언합니다. |
/vms | 단일 상속을 선언합니다. |
/vmv | 가상 상속을 선언합니다. |
/Za | 언어 확장을 사용하지 않습니다. |
/Zc | /Ze에서 표준 동작을 지정합니다. |
/Ze | 언어 확장을 사용합니다. |
/Zg | 함수 프로토타입을 생성합니다. |
/Zl | .obj 파일에서 기본 라이브러리 이름을 제거합니다. |
/Zpn | 구조체 멤버를 넣습니다. |
/Zs | 구문만 확인합니다. |
링크
옵션 | 용도 |
---|---|
/F | 스택 크기를 설정합니다. |
/LD | DLL(동적 연결 라이브러리)을 만듭니다. |
/LDd | 디버그 DLL(동적 연결 라이브러리)을 만듭니다. |
/link | 지정된 옵션을 LINK에 전달합니다. |
/MD | MSVCRT.lib을 사용하여 컴파일함으로써 다중 스레드 DLL을 만듭니다. |
/MDd | MSVCRTD.lib로 컴파일하여 디버그 다중 스레드 DLL을 만듭니다. |
/ML | LIBC.lib를 사용하여 컴파일함으로써 단일 스레드 실행 파일을 만듭니다. |
/MLd | LIBCD.lib를 사용하여 컴파일함으로써 디버그 단일 스레드 실행 파일을 만듭니다. |
/MT | LIBCMT.lib를 사용하여 컴파일함으로써 다중 스레드 실행 파일을 만듭니다. |
/MTd | LIBCMTD.lib를 사용하여 컴파일함으로써 디버그 다중 스레드 실행 파일을 만듭니다. |
미리 컴파일된 헤더
옵션 | 용도 |
---|---|
/Y- | 현재 빌드에서 미리 컴파일된 다른 모든 헤더 컴파일러 옵션을 무시합니다. |
/Yc | 미리 컴파일된 헤더 파일을 만듭니다. |
/Yd | 모든 개체 파일에 완전한 디버깅 정보를 저장합니다. |
/Yu | 빌드하는 동안 미리 컴파일된 헤더 파일을 사용합니다. |
/YX | 미리 컴파일된 헤더를 자동화합니다. |
기타
옵션 | 용도 |
---|---|
@ | 지시 파일을 지정합니다. |
/? | 컴파일러 옵션을 나열합니다. |
/c | 링크하지 않고 컴파일합니다. |
/H | 외부 공개 이름의 길이를 제한합니다. |
/HELP | 컴파일러 옵션을 나열합니다. |
/J | 기본 char 형식을 변경합니다. |
/nologo | 초기 화면 배너를 표시하지 않습니다. |
/QI0f | Pentium 0F 명령에 문제가 없도록 합니다. |
/QIfdiv | 결함이 있는 FDIV, FPREM, FPTAN 및 FPATAN 명령을 가진 Intel Pentium 마이크로프로세서 문제를 해결합니다. |
/QIfist | 부동 소수점 형식에서 정수 계열 형식으로 변환해야 할 때 도우미 함수 _ftol가 호출되지 않도록 합니다. |
/showIncludes | 컴파일하는 동안 전체 포함 파일의 목록을 표시합니다. |
/Tc /TC |
C 소스 파일을 지정합니다. |
/Tp /TP |
C++ 소스 파일을 지정합니다. |
/V | 버전 문자열을 설정합니다. |
/W | 경고 수준을 설정합니다. |
/w | 모든 경고를 사용하지 않습니다. |
/Wall | 기본적으로 비활성화되는 경고를 포함하여 모든 경고를 활성화합니다. |
/WL | 명령줄에서 C++ 소스 코드를 컴파일할 때 오류 및 경고 메시지에 한 줄 진단을 사용합니다. |
/Zm | 미리 컴파일된 헤더 메모리의 할당 제한을 지정합니다. |
/MP 컴파일시 멀티 코어사용
'프로그래밍' 카테고리의 다른 글
아무것도 안하는함수 (0) | 2011.08.10 |
---|---|
비주얼 스튜디오 링크 순서 보이기 (0) | 2011.08.09 |
mutable (0) | 2010.10.20 |
explicit (0) | 2010.10.20 |
ms vs에서 포인터 변수에 들어가있는 값의 비밀 (0) | 2010.08.18 |
글
#include <Turboc.h>
class Position
{
private:
int x,y;
char ch;
mutable char info[256];
public:
Position(int ax, int ay, char ach) { x=ax;y=ay;ch=ach; }
void OutPosition() const { gotoxy(x, y);putch(ch); }
void MoveTo(int ax, int ay) { x=ax; y=ay; }
void MakeInfo() const { sprintf(info,"x=%d, y=%d, ch=%c",x,y,ch); }
void OutInfo() const { puts(info); }
};
void main()
{
const Position Here(11,22,'Z');
Here.MakeInfo();
Here.OutInfo();
}
Const 효과를 없에는 특정 변수설정
'프로그래밍' 카테고리의 다른 글
비주얼 스튜디오 링크 순서 보이기 (0) | 2011.08.09 |
---|---|
VS2008 컴파일러 옵션 (1) | 2010.10.21 |
explicit (0) | 2010.10.20 |
ms vs에서 포인터 변수에 들어가있는 값의 비밀 (0) | 2010.08.18 |
API 파일 처리 유용함수 (0) | 2010.08.10 |
글
01.class
TestClass
02.
{
03.
public
:
04.
TestClass(
int
nParam = 1) : m_Num(nParam)
05.
{
06.
std::cout <<
"생성자 호출"
<< std::endl;
07.
}
08.
~TestClass(){}
09.
10.
private
:
11.
int
m_Num;
12.
};
13.
14.
void
main()
15.
{
16.
TestClass TestObj1 = TestClass(1);
17.
TestClass TestObj2 = 2;
18.
TestClass TestObj3(3);
19.
TestObj1 = 4;
20.
}
1.
TestClass TestObj2 = 2;
2.
TestObj1 = 4;
이 부분입니다.
TestClass라는 클래스는 생성자의 매개변수로 int형 데이터를 받아오는 클래스로써 int형과 상호호환은 염두해두고 있지 않는 클래스입니다. 연산자 오버로딩도 하지 않았구요. 이 부분에 있어서 VisualStudio2008 C++컴파일러는 사용자의 편의를 위해 묵시적으로 변환하여 임시 객체 생성 후 해당 객체에 대입하게 됩니다.
explicit 키워드는 이럴 경우에 사용하는 것으로 명시적으로 생성자를 호출해야만 하는 상황이 아니면 절대 생성자를 호출해주지 않도록 해주는 것입니다. 그렇다면 똑같은 소스코드에 이 키워드를 삽입하면 어떻게 되는지 살펴보도록 하겠습니다.
아래의 소스를 보세요.
02.
{
03.
public
:
04.
explicit
TestClass(
int
nParam = 1) : m_Num(nParam)
05.
{
06.
std::cout <<
"생성자 호출"
<< std::endl;
07.
}
08.
~TestClass(){}
09.
10.
private
:
11.
int
m_Num;
12.
};
13.
14.
void
main()
15.
{
16.
TestClass TestObj1 = TestClass(1);
17.
TestClass TestObj2 = 2;
18.
TestClass TestObj3(3);
19.
TestObj1 = 4;
20.
}
위 소스를 컴파일 해보면 오류가 두개 발생합니다.
첫번째 오류는 TestClass TestObj2 = 2; 에서 int형에서 TestClass형으로 변환할 수 없다는 것이고,
두번째 오류는 TestObj1 = 4; 에서 TestClass에 속한 "=" 연산자 중 우변에 int형을 받는 것을 찾을 수 없다는 것입니다.
main()함수의 첫번째 줄과 두번째 줄은 정상적인 방법을 통한 객체생성 및 생성자 호출조건임을 알 수 있죠.
아주 불편해보이죠?
굳이 편한 묵시적 변환기능을 놔두고 왜 굳이 8글자나 더 써가며 explicit이라는 키워드를 사용하고, 또 여기서 동반되는 소스코드의 수정을 왜 하는지...
이러한 묵시적인 기능이 대형 프로젝트에서는 심각하지만 찾기 매우매우 어려운 버그를 동반할 가능성이 농후하기 때문입니다. 특히나 4번째 줄에 있는 TestObj1 = 4; 이 부분은 정말 말로 설명할래야 하기도 싫은 명백한 오류임에도 우리의 컴파일러는 친절히 컴파일을 해줍니다.
이것이 explicit 키워드의 역할입니다.
'프로그래밍' 카테고리의 다른 글
VS2008 컴파일러 옵션 (1) | 2010.10.21 |
---|---|
mutable (0) | 2010.10.20 |
ms vs에서 포인터 변수에 들어가있는 값의 비밀 (0) | 2010.08.18 |
API 파일 처리 유용함수 (0) | 2010.08.10 |
릴리즈 디버깅시 최적화 하는것 막기 (0) | 2010.08.04 |
글
ms vs에서 포인터 변수에 들어가있는 값의 비밀
MS의 매직 디버깅 숫자들의 의미...
ABABABAB HeapAlloc으로 메모리 할당 후 가드 바이트에 채워진 값
CCCCCCCC 초기화 되지 않은 스택 메모리
CDCDCDCD 메모리 할당 후 초기화 되지 않은 힙 메모리
BAADF00D LocalAlloc(LMEM_FIXED)으로 메모리 할당된 후 초기화 되지 않은 값
FDFDFDFD 할당된 메모리의 전후 가드용 바이트에 채워지는 값
FEEEFEEE 힙 메모리를 해제한 후 채워지는 값
'프로그래밍' 카테고리의 다른 글
mutable (0) | 2010.10.20 |
---|---|
explicit (0) | 2010.10.20 |
API 파일 처리 유용함수 (0) | 2010.08.10 |
릴리즈 디버깅시 최적화 하는것 막기 (0) | 2010.08.04 |
D3DFont (0) | 2010.07.21 |
글
API 파일 처리 유용함수
참조: http://msdn.microsoft.com/en-us/library/bb773559(VS.85).aspx
윈도우의 Visual C++에서 파일 경로를 조작할 때 사용할 수 있는 유용한 API 함수들이다.
사용하기 위해 아래와 같이 선언한다.
#include <shlwapi.h>
#pragma comment(lib, "shlwapi")
PathAddBackslash - 경로에 백슬레시를 덧붙여준다. 백슬레시가 이미 붙어 있으면 변경하지 않는다.
"c:\abc\" -> "c:\abc\"
"c:\abc.cpp", ".tmp" -> "c:\abc.cpp"
"c:\abc\", "def" -> "c:\abc\def"
"c:\abc", "\def" -> "c:\abc\def"
"c:\abc\", "\def" -> "c:\abc\def"
1 -> "B:\"
2 -> "C:\"
"c:\abc\def\.\ghi" -> "c:\abc\def\ghi"
"c:\abc\", "..\def\ghi.txt" -> "c:\def\ghi.txt"
"c:\abc\def\jkl.txt", "c:\abc\def\..\jkl.txt" -> "c:\abc\def"
"abc\def.txt" -> "def.txt"
"def.txt" -> ""
"iexplore.exe", { "c:\Windows", "c:\Program Files", "c:\Program Files\Internet Explorer", NULL } -> "c:\Program Files\Internet Explorer\iexplore.exe"
파일이 여러개라면 첫번째로 발견된 파일의 경로만 반환
"c:\abc\def\ghi.txt", { "def.txt", "DEF.txt", ".txt" }, 3 -> ".txt"
"test.exe sample All 15" -> "sample All 15"
"test.exe" -> ""
"abc def ghi" -> "def ghi"
'.' -> GCT_LFNCHAR | GCT_SHORTCHAR
'\\' -> GCT_SEPARATOR
'/' -> GCT_INVALID
'\"' -> GCT_INVALID
'\'' -> GCT_LFNCHAR | GCT_SHORTCHAR
'\t' -> GCT_INVALID
'\n' -> GCT_INVALID
',' -> GCT_LFNCHAR
'*' -> GCT_WILD
'?' -> GCT_WILD
입력된 문자열을 검색하면서 리턴값을 조사하면 올바른 경로인지 미리 검사할 수 있다.
"d:" -> 3
"s:\test" -> 18
".txt", "text/plain" -> TRUE
"txt", "text/plain" -> FALSE
"c:\abc" -> FALSE
"test.txt" -> TRUE
"*/wow." -> TRUE
"test.htm" -> TRUE
"test.xml" -> FALSE
"test.txt" -> FALSE
PathIsLFNFileSpec - 주어진 경로가 긴파일이름에 적합한지 확인한다.
PathIsNetworkPath - 주어진 경로가 네트워크 경로 형식인지 확인한다. (실제로 존재하는지 확인하지는 않음)
"\\abc\def.txt" -> TRUE
"http://abc/def.txt" -> FALSE
"C:\", "c:\abc" -> TRUE
"c:", "c:\abc" -> FALSE
"..\abc", "..\abc\def" -> TRUE
"d:\abc", "d:\def" -> FALSE
"..\abc\def.txt" -> TRUE
"c:\abc\def.txt" -> FALSE
"c:\abc\..\def.txt" -> FALSE
"test.txt" -> TRUE
"c:" -> FALSE
"c:\test.txt" -> FALSE
"c:\program files" -> TRUE
"C:\Documents and Settings" -> FALSE
"C:\Documents and Settings\All Users\Application Data" -> TRUE
PathIsUNC - 네트워크 공유 경로인지 확인한다. (실제로 존재하는지 확인하지는 않음)
"\\abc\def" -> TRUE
"\\192.168.0.1" -> TRUE
"\\abc\def.txt" -> TRUE
"\\" -> TRUE
"\\test.txt" -> TRUE
PathIsUNCServer - 네트워크 공유 서버인지 확인한다. (실제로 존재하는지 확인하지는 않음)
"\\abc\def" -> FALSE
"\\192.168.0.1" -> TRUE
"\\abc\def.txt" -> FALSE
"\\" -> TRUE
"\\test.txt" -> TRUE
PathIsUNCServerShare - 네트워크 공유 폴더인지 확인한다. (실제로 존재하는지 확인하지는 않음)
"\\abc\def" -> TRUE
"\\192.168.0.1" -> FALSE
"\\abc\def.txt" -> TRUE
"\\" -> FALSE
"\\test.txt" -> FALSE
PathIsURL - 주어진 경로가 URL 형식이 맞는지 확인한다.
PathMakePretty - 대문자로 만들어진 경로 문자열을 소문자로 변환한다. (소문자가 하나라도 있으면 실패)
"c:\ABC\DEF" -> FALSE, "c:\ABC\DEF"
"C:\abc\DEF" -> FALSE, "C:\abc\DEF"
"abc.txt", "ab?.*" -> TRUE
"c:\abc\def.txt", "*\???.txt" -> TRUE
c:\abc -> c:\abc
"c:\abc\def\ghi\jkl", FILE_ATTRIBUTE_DIRECTORY, "c:\abc\mno\pqr.txt", 0
"test.exe sample All 15" -> "test.exe"
"test.exe" -> "test.exe"
"abc def ghi" -> "abc"
"c:\abc" -> "c:\abc"
"c:\abc\def\" -> "c:\abc\def"
"c:\abc\def", ".bak" -> "c:\abc\def.bak"
"c:\abc\def\", ".bak" -> "c:\abc\def\.bak"
"C:\foo\baz\.." -> "C:\foo"
"C:\foo\\\baz" -> "C:\foo\baz"
"\\server\aa\..\bb" -> "\\server\aa\bb"
"notepad.exe" -> "C:\Windows\System32\notepad.exe"
"%SystemRoot%\System32\notepad.exe" -> "C:\Windows\System32\notepad.exe"
(XP에서는 환경변수 확장이 제대로 작동하지 않음)
PathSetDlgItemPath - 주어진 다이얼로그 아이템 윈도우의 크기에 알맞게 긴 경로를 적당히 줄여준다.
PathSkipRoot - 루트 경로를 제외한 첫번째 위치를 찾아서 반환한다.
"\\\\abc\\def\\ghi.txt" -> "ghi.txt"
"c:\abc\def" -> "def"
"c:\abc\def\" -> "def\"
"c:\abc\def" -> "c:\"
"C:\Path\File[12]" -> "C:\Path\File"
"C:\Path\File.txt" -> "C:\Path\File.txt"
"C:\Path\[3].txt" -> "C:\Path\[3].txt"
인터넷으로 접근한 임시파일들은 [#]과 같은 식으로 번호가 뒤에 붙는데 그러한 임시 번호를 제거한다.
"c:\program files\test.txt" -> "%ProgramFiles%\test.txt"
"c:\abc\def" -> "%SystemDrive%\abc\def"
c:\abc\def -> c:\abc\def
'프로그래밍' 카테고리의 다른 글
explicit (0) | 2010.10.20 |
---|---|
ms vs에서 포인터 변수에 들어가있는 값의 비밀 (0) | 2010.08.18 |
릴리즈 디버깅시 최적화 하는것 막기 (0) | 2010.08.04 |
D3DFont (0) | 2010.07.21 |
MFC 가 아닌경우 메모리 릭 검사 (0) | 2010.06.25 |
글
릴리즈 디버깅시 최적화 하는것 막기
릴리즈 디버깅시
#pragma optimize( "gpsy",off)
#pragma optimize( "gpsy",on)
이사이에 코드를 넣어주세요
'프로그래밍' 카테고리의 다른 글
ms vs에서 포인터 변수에 들어가있는 값의 비밀 (0) | 2010.08.18 |
---|---|
API 파일 처리 유용함수 (0) | 2010.08.10 |
D3DFont (0) | 2010.07.21 |
MFC 가 아닌경우 메모리 릭 검사 (0) | 2010.06.25 |
템플릿 클래스 함수 포인터 배열 상속 (0) | 2010.05.21 |
글
m_pd3dDevice->BeginScene();
폰트 객체 선언
ID3DXFont* m_pFont;
ID3DXSprite* m_pTextSprite;
폰트 생성
D3DXCreateFont( m_pd3dDevice, Height, Width, Weight, 1, FALSE, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
pFontName, &m_pFont );
스프라이트 객체 생성
D3DXCreateSprite( m_pd3dDevice, &m_pTextSprite );
스프라이트에 그리기 시작
if( m_pTextSprite )
m_pTextSprite->Begin( D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_TEXTURE );
RECT rtPos = { 0, 0, 0, 0};
폰트 그리기
m_pFont->DrawText( m_pTextSprite, L"폰트내용", -1,
&rtPos, DT_NOCLIP, m_vecFont2D[i]->color );
스프라이트 그리기 종료
m_pTextSprite->End();
m_pd3dDevice->EndScene();
2005년 이후 SDK의 경우 DrawText의 첫번째 인자로 스프라이트 클래스 포인터를 받음으로써
2D화면 좌표로의 변환 없이 텍스트를 출력할 수 있다.
[출처] DirectX 폰트 사용하기(D3DFont)|작성자 날랜손깔
'프로그래밍' 카테고리의 다른 글
API 파일 처리 유용함수 (0) | 2010.08.10 |
---|---|
릴리즈 디버깅시 최적화 하는것 막기 (0) | 2010.08.04 |
MFC 가 아닌경우 메모리 릭 검사 (0) | 2010.06.25 |
템플릿 클래스 함수 포인터 배열 상속 (0) | 2010.05.21 |
디자인 패턴 21종(23-2) 정리 .xlsx (0) | 2009.09.19 |
글
리눅스 커널 버전확인
uname -a
'컴퓨터' 카테고리의 다른 글
아파치 재시작 (0) | 2011.12.14 |
---|---|
콘솔 리다이렉션 (0) | 2011.12.09 |
리눅스 하위 폴더 용량 확인 (0) | 2010.12.17 |
Windows 자동 실행 위치 (0) | 2010.12.15 |
hosts파일 [ 윈도우 내부 DNS -> IP ] (0) | 2010.12.15 |