[C++] Flatbuffer 사용법
·
C++
단계별로 따지면 총 5단계이다.소스 파일 및 flatc.exe 다운로드파일들 경로 세팅*.fbs(IDL) 정의*.fbs 컴파일컴파일한 *.h include소스 파일 및 flatc.exe 다운로드https://github.com/google/flatbuffers/releases Releases · google/flatbuffersFlatBuffers: Memory Efficient Serialization Library - google/flatbuffersgithub.com해당 사이트에서 가장 최신의것을 다운받으면 된다.자신의 환경에 맞게 다운받으면 된다.윈도우를 사용중이라면 Windows.flatc.binary.zip을 다운받고Source code (zip) 도 다운받으면 된다. 파일들 경로 세팅bina..
[C++] Inline함수와 #Define 차이점
·
C++
해당 글은 아래의 공식문서를 요약한 글입니다.틀린 부분이 있으면 알려주세요!https://learn.microsoft.com/ko-kr/cpp/cpp/inline-functions-cpp?view=msvc-170 인라인 함수(C++)C++ 인라인 키워드는 컴파일러에 인라인 함수 처리를 제안하는 데 사용될 수 있습니다.learn.microsoft.com Inline 함수란?컴파일러가 해당 함수에 대한 각 호출 대신 함수 정의 내의 코드를 대체하도록 제안합니다.이론적으로 인라인 함수를 사용하면 함수 호출과 연관된 오버헤드가 제거되어 프로그램 속도가 더 빨라질 수 있습니다. 인라인 함수의 단점은 프로그램의 전체 크기가 증가할 수 있다는 것입니다.인라인 코드 대체는 컴파일러의 재량에 따라 수행됩니다. 예를 들어..
[C++] IOCP OverlappedEx 구조체에 관하여
·
C++
iocp서버 공부를 하던 중 클라가 접속했을 때 정상적으로 큐에 반응은 오나구조체 OverlappedEx라는 멤버변수의 값이 변경되는 버그가 발생했고 왜 발생하였는가와 어떻게 해결했는가를 공유하려합니다. OverlappedEx 구조체enum CompletionType{ NONE, RECV, SEND, CONNECT, DISCONNECT,};struct OverlappedEx{ LPOVERLAPPED overlapped = {}; CompletionType type = NONE; char _buf[BUF_SIZE] = {};};OverlappedEx의 구조체입니다.멤버 변수로는 overlapped와 type, buf가 있습니다. 문제점unsigned __stdcall IOCP::AcceptThread(vo..
[C++] find_if 로 특정 클래스 가져오기
·
C++
다른 글들은 답답하게 상수값 넣고 int 배열의 인덱스값만 가져오는 쉬운 예시만 보여줘서 직접 글을 올립니다. class Location {private: int _allowMethod; bool _isAutoindex; string _cgiPath; string _uriPath; string _idxPath; string _rootPath; string _redirectPath; string _autoindexPath;public: Location(); Location(const Location &loc); Location(const LocationData &data); Location &operator=(const Location &loc); ~Location(); void ..
[C++] String Compare vs strcmp
·
C++
C++의 String Compare 함수 C의 strcmp 함수 이 두 함수는 문자열을 비교해주는 함수입니다 string compare 의 반환값은 같으면 0 다르면 ascii 코드의 차이값을 반환하고 strcmp 의 반환값은 같으면 0 다르면 1 또는 -1을 반환하게 됩니다. (반환값은 운영체제 별로 다를 수 있습니다) 어찌 되었건 두 함수의 용도는 문자열 비교인데요 그런데 두 함수의 결정적인 차이는 비교하는 자료형에서 차이가 나게 됩니다 #include #include int main() { std::string hello = "hell"; std::string hello1 = "hella!"; std::size_t len = hello1.length(); hello1[len - 1] = '\0'; ..
[C++] Html Form 인코딩된 데이터 디코딩하기
·
C++
과제로 C++ 웹 서버를 여는 문제를 풀고 있었는데 Form 태그로 데이터를 받게 구현 했었습니다. 그런데 이상하게 입력한 값이 영어가 아닌 경우 자동으로 인코딩 되어 서버에 전송이 되는것으로 보였습니다. UTF-8로 지정된 데이터가 아닌 다른 형식으로 바뀐 데이터가 보내지고 있었고 한글만 깨지는것이 아닌 영어를 제외한 모든 데이터가 깨지는 현상이었습니다. _method=post&id=hello world!z&password=aA1! 이렇게 전송되었어야 할 데이터가 _method=post&id=hello+world%21z&password=aA1%21 이런식으로 인코딩되어 전송됨 닉네임 : 비밀번호 : 당시 문제가 됐었던 html 코드인데 charset을 form 태그에 넣고 utf-8로 지정을 했어도 문..
원피스는 실존하다
'C++' 카테고리의 글 목록