티스토리 뷰
1. MFC에서 문자열 작성 후 파일에 저장 시 한글 깨져있을 때 체크 사항
- setlocale(LC_ALL, "Korean"), setlocale(LC_ALL, ""): 시스템 설정에 따름
- 프로그램 시작 시등 필요한 곳에 한 번 실행
2. MFC 현재 시간 구하기
- CTime time = CTime::GetCurrentTime(); -> time.Format(_T("%Y_%m_%d_%H.log"))); ( OK )
- CTime time = GetCurrentTime(); -> time.Format(_T("%Y_%m_%d_%H.log"))); ( Failed )
3. boost asio read_some() 함수 호출 시 0으로 바로 리턴될 때 체크 사항
buffer를 vector로 사용할 경우 아래와 같이 resize 함수를 사용하여 사이즈를 정해줘야 함.
(vector 사이즈가 0일 경우 바로 리턴됨)
- boost::system::error_code error;
std::vector<BYTE> recvBuffer{};
recvBuffer.resize(1024);
size_t len = _socket.read_some(boost::asio::buffer(recvBuffer), error);
4. Convert byte array to string in C++
vector<unsigned char> bytes = {'G', 'O', 'O', 'D'};
-> std::string msg(bytes.begin(), bytes.end());
5. Convert a String to a Vector of Bytes in C++
std::string msg = "Hello";
std::vector<unsigned char> bytes;
for (char ch : msg) {
bytes.push_back(static_cast<unsigned char>(ch));
}
std::string msg = "Hello";
std::vector<unsigned char> bytes(msg.begin(), msg.end());std::string msg = "Hello";
std::vector<unsigned char> bytes;
bytes.resize(msg.size());
std::copy(msg.begin(), msg.end(), bytes.begin());
6. Convert string to wstring, Convert wstring to string
std::string msg = "hello";
std::wstring wmsg;
wmsg.assign(msg.begin(), msg.end());
std::wstring wmsg = "hello";
std::string msg;
msg.assign(wmsg.begin(), wmsg.end());
7. std::snprintf 사용 시 체크 사항
- snprintf : 길이 n의 마지막에는 '\0' 값이 들어간다는 것을 염두에 두고 길이 값 설정 필요 함.
int length = 16;
char bufferTotLength[4] = { 0, };
// "0001"로 마지막 문자6이 잘림
std::snprintf(bufferTotLength, sizeof(bufferTotLength), "%04d", length);
'개발 > VC++ (MFC)' 카테고리의 다른 글
MFC : 타이틀바에 시간 정보 출력하기 (0) | 2023.06.23 |
---|---|
MFC : 가변인자 처리 wvsprintf() -> vswprintf() (0) | 2023.06.01 |
MFC : Failed to return... (0) | 2023.05.25 |
MFC : 윈도우(창) 좌표 이야기 (0) | 2023.05.22 |
MFC : 멀티바이트 문자열을 유니코드 문자열로 변경하는 방법 (0) | 2023.05.08 |