PathMgr
2022. 12. 26. 20:47ㆍ개인공부/Win32API
1
2
3
4
5
6
7
8
9
10
11
|
class CPathMgr
{
SINGLE(CPathMgr);
private:
wchar_t m_szContentPath[255];
public:
void init();
const wchar_t* GetContentPath() { return m_szContentPath; }
};
|
cs |
PathMgr는 폴더주소를 관리하는 클래스로 주소를 저장할 수 있는 문자열을 저장하는 인자를 가지고 처음에 init 을 통해서 주소문자열을 받아오는 역할을 한다. 그리고 어디서든지 GetContentPath을 이용하요 폴더주소를 얻을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
void CPathMgr::init()
{
GetCurrentDirectory(255, m_szContentPath);
int iLen = wcslen(m_szContentPath);
// 상위 폴더로
for (int i = iLen - 1; 0 <= i; --i)
{
if ('\\' == m_szContentPath[i])
{
m_szContentPath[i] = '\0';
break;
}
}
wcscat_s(m_szContentPath, 255, L"\\bin\\content\\");
}
|
cs |
GetCurrentDirectory 함수통해서 실행중인 폴더의 주소문자열을 받는데 이과정에서 디버깅과 릴리즈, visual studio 내부 디버깅 과정에서 반환하는 주소가 다르기때문에 한개로 맞춰줘야한다.
클라이언트 속성페이지에서 디버깅중에 작업디렉터리를 수정하면 visual studio 내에서는 수정이 가능하다 그리고 작업을 모두 똑같은 곳에서 실행하기위해서 Output 폴더를 생성하고 bin 폴더 내부에 리소스를 가지는 content폴더를 만들고 모든 리소스들은 그곳에 저장한다. \0 널문자를 만나면 종료하는 문자열이므로 가장 마지막 \\ 를 찾아서 널문자로 바꾸면 된다. 그러면 PathMgr를 통해서 주소가 관리가능하다.
'개인공부 > Win32API' 카테고리의 다른 글
Collider (0) | 2022.12.28 |
---|---|
bmp 파일 적용 (0) | 2022.12.27 |
Object (0) | 2022.12.25 |
KeyManager (2) | 2022.12.24 |
TimeManager (0) | 2022.12.23 |