C# 경로(Path) 요소 분리하기
'Programming > C#' 카테고리의 다른 글
C#으로 xml 처리하기 (0) | 2011.10.25 |
---|---|
현재 Process의 한영 정보 얻기 (0) | 2011.10.10 |
C# XML 다루는 간단한 소스 (0) | 2011.09.16 |
DLL 파일을 별도 폴더에서 관리하자 (0) | 2011.09.14 |
[펌] 입력 문자 검사 (0) | 2011.09.14 |
C#으로 xml 처리하기 (0) | 2011.10.25 |
---|---|
현재 Process의 한영 정보 얻기 (0) | 2011.10.10 |
C# XML 다루는 간단한 소스 (0) | 2011.09.16 |
DLL 파일을 별도 폴더에서 관리하자 (0) | 2011.09.14 |
[펌] 입력 문자 검사 (0) | 2011.09.14 |
현재 Process의 한영 정보 얻기 (0) | 2011.10.10 |
---|---|
C# 경로(Path) 요소 분리하기 (0) | 2011.09.16 |
DLL 파일을 별도 폴더에서 관리하자 (0) | 2011.09.14 |
[펌] 입력 문자 검사 (0) | 2011.09.14 |
C# 관련 정보 사이트[MKEXDEV.NET] (0) | 2011.09.13 |
putty에서 EUC-KR 설정인 Linux 서버 접속하기 (0) | 2012.01.10 |
---|---|
[펌] 윈7 단축키 대박 (0) | 2011.11.26 |
.dmp 파일 남기기 (0) | 2011.09.11 |
[펌] Google C++ Style Guide (구글 C++ 엔지니어들의 코딩 스타일) (0) | 2011.08.22 |
메모리릭 찾기 (0) | 2011.08.20 |
요샌 프로그램 하나 만들려면 엄청난 dll들이 부가 되는데
이것들이 실행 파일과 혼재되어 정신 사납기 이를데 없다
이럴때 dll 파일만 따로 모아서 관리 할수 있으면 얼마나 좋을까??
자~ 해봅시다~
그림으로 보면 DLL폴더와 실행 화일이 따로 분리 된걸 볼 수 있다
DLL 폴더내에 따로 모아진 dll 파일들과 pdb 파일들을 볼수 있다
이렇게 하기 위해서는 먼저 DLL 폴더를 만들고 랩작업을 할때 다음 처럼
경로를 지정해서 랩을 한다
이렇게 하면 당연히 하위 DLL 폴더에서 해당 dll을 찾아 프로그램이 실행된다
하지만 그림처럼 참조 추가된 Cinch 같은 dll도 DLL 폴더로 넣을라면 어떻게 해야 할까?
이런 경우에는 Project에 프로퍼티에서 그림 처럼 설정 해준다
이렇게 해주면 참조 추가된 dll들도 DLL 폴더로 컴파일 시 옮겨지게 된다
move "$(TargetDir)\*.dll" "$(TargetDir)\DLL"
move "$(TargetDir)\*.pdb" "$(TargetDir)\DLL"
옮겨지기는 했지만 실제 프로그램을 실행 시켜 보면 dll을 찾을수 없다는 에러가 발생된다
솔루션 창에서 아래 그림처러 새로운 아이템으로 appication configuration file을
app.config란 파일 이름으로 생성한다
그리고 그 파일 안에는
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="DLL"/>
</assemblyBinding>
</runtime>
</configuration>
이렇게 써주고 실행하면 해당 dll들을 DLL폴더에서 찾아오게 된다
이로서 실행파일과 dll 파일을 깔끔하게 분리하여 산뜻하게 관리 할 수 있게 되었다
C# 경로(Path) 요소 분리하기 (0) | 2011.09.16 |
---|---|
C# XML 다루는 간단한 소스 (0) | 2011.09.16 |
[펌] 입력 문자 검사 (0) | 2011.09.14 |
C# 관련 정보 사이트[MKEXDEV.NET] (0) | 2011.09.13 |
Processing Global Mouse and Keyboard Hooks in C# (0) | 2011.05.13 |
입력 문자 검사
예제> 몇 가지 예를 살펴보면.. e.Handled = true; } && e.KeyChar != 8) { e.Handled = true; } Char.IsLetter(e.KeyChar) || Char.IsSymbol(e.KeyChar)) && e.KeyChar != 8) { e.Handled = true; }
수행한다. 입력을 불허해야 하는 상황이라면 KeyPressEventArgs 의 Handled 속성을 true 로 설정하여 TextBox의 KeyPress 이벤트를 취소 시킨다 (즉, TextBox 에 글이 적히지 않도록 한다)
키 자체의 단일 정수값을 이용해 입력 값을 검증할 수 있다. 아래 표는 각 키의 값을 나타내는 표이다
&& e.KeyChar != 8) { e.Handled = true; }
출처 : http://www.mkexdev.net/Article/Content.aspx?parentCategoryID=1&categoryID=23&ID=272 |
C# XML 다루는 간단한 소스 (0) | 2011.09.16 |
---|---|
DLL 파일을 별도 폴더에서 관리하자 (0) | 2011.09.14 |
C# 관련 정보 사이트[MKEXDEV.NET] (0) | 2011.09.13 |
Processing Global Mouse and Keyboard Hooks in C# (0) | 2011.05.13 |
Array -> String (0) | 2011.05.09 |
DLL 파일을 별도 폴더에서 관리하자 (0) | 2011.09.14 |
---|---|
[펌] 입력 문자 검사 (0) | 2011.09.14 |
Processing Global Mouse and Keyboard Hooks in C# (0) | 2011.05.13 |
Array -> String (0) | 2011.05.09 |
SaveFileDialog (0) | 2011.03.25 |
SetUnhandledExceptionFilter 를 사용하자.
#include <dbghelp.h>
#pragma comment(lib, "dbghelp.h")
함수원형
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter (
__in LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
사용법
1. ExceptionHandler implementation
LONG CALLBACK FunctionName (_EXCEPTION_POINTERS *pExceptionInfo)
{
pExceptionInfo->ExceptionRecord->ExceptionCode; // ExceptionCode
HANDLE hFile = CreateFile(DumpFileName);
MINIDUMP_EXCEPTION_INFORMATION eInfo;
eInfo.ThreadId = GetCurrentThreadId();
eInfo.ExceptionPointers = pExceptionInfo;
eInfo.ClientPointers = FALSE;
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal,
pExceptionInfo ? &eInfo : NULL, NULL, NULL);
return EXCEPTION_EXECUTE_HANDLER;
}
2. Main 함수에서 1에서 구현한 ExceptionHandler 등록
int main(void)
{
....
SetUnhandledExceptionFilter(UnhandledExceptionHandler);
....
}
[출처] .dmp 파일 남기기|작성자 미락꿀
[펌] 윈7 단축키 대박 (0) | 2011.11.26 |
---|---|
[펌] O2 최적화보다 O1 최적화가 빠르다? (0) | 2011.09.14 |
[펌] Google C++ Style Guide (구글 C++ 엔지니어들의 코딩 스타일) (0) | 2011.08.22 |
메모리릭 찾기 (0) | 2011.08.20 |
Dump 파일 떨구기, 확인하기 (0) | 2011.07.30 |
[출처] 하루 6분 복근만들기|작성자 미락꿀
[펌] 파랑새 신드롬 (0) | 2011.11.16 |
---|---|
눈에 좋은 색 (1) | 2011.10.19 |
엔지니어로 성공하고 싶다면 하지말아야 할 48가지 (0) | 2011.08.31 |
에릭 가일러: 무선으로 공급되는 전기를 보여드립니다 (0) | 2011.08.29 |
소프트웨어, 잉여와 공포 (0) | 2011.08.29 |
컴파일러 옵션
/RTC (런타임 오류 검사)
/RTCc : C/C++ > 코드 생성 > 작은 형식 검사 (값을 작은 데이터 형식으로 변환할 때 데이터 손실이 있는지 확인)
/RTCu : C/C++ > 코드 생성 > 기본 런타임 검사 (초기화되지 않은 변수 참조를 추적)
/GS (버퍼 보안 검사)
C/C++ > 코드 생성 > 버퍼 보안 검사
Debug Mode에서도 사용을 하기를 권장한다.
/O1 (크기 최소화)
C/C++ > 최적화 > 최적화
기본적으로 Release모드에서 /O2 (속도 최대화) 를 사용한다.
그러나, MS는 모든 상업용 프로그램을 /O1 을 사용한다.
/showIncludes
C/C++ > 고급 > 포함 표시
어떤 파일을 포함하고 그 파일의 위치를 확인 할 수 있다.
링커 옵션
/MAP
/MAPINFO:LINES
/MAPINFO:EXPORTS
링커 > 디버깅
항상 사용을 하도록 하자.
/OPT:NOWIN98
링커 > 최적화 > Win98에 맞게 최적화
Win98, Me 를 지원하지 않는다면 사용하자. 응용프로그램의 크기 감소 효과.
/Release
링커 > 고급 > 체크섬 설정
이름과는 다르게 이 스위치는 PE헤더에 체크섬 값을 설정한다.
디버그 모드에서는 절대 사용하지 말자. 일반 사용자-모드 응용 프로그램은 이 값이 필요치 않다.
[출처] 네이티브 코드 선행 디버깅에 도움을 주는 컴파일러와 링커 옵션|작성자 미락꿀
[Visual Studio] 속성 매크로 설정 , Visual Studio PropertySheet (0) | 2011.10.19 |
---|---|
VS2008,VS2010에서 속도 최적화 방법 (0) | 2011.09.19 |
증분 링크(incremeltal linking)란? (0) | 2011.09.03 |
[추가] Visual Studio 듀얼코어, 쿼드코어 CPU를 활용한 컴파일(빌드) 속도 향상방법 #3 (0) | 2011.09.03 |
[펌] Visual Studio 2005에서 2008로 넘어가면서 고쳐야 할 프로젝트 세팅 (0) | 2011.09.03 |
C# 디자인패턴 (0) | 2010.12.15 |
---|---|
Dependency를 관리하는 방법 (0) | 2010.10.21 |
Design Pattern Examples in C# (0) | 2010.07.23 |
GoF의 디자인패턴 (0) | 2010.07.23 |
FSM - 유한 상태 기계 (Finite State Machine) (0) | 2010.07.09 |