코딩 (3) 썸네일형 리스트형 memcpy, memset 구현 구현하게 된 계기 code injection을 진행하다보니, 해당 함수를 많이 사용하게되는데 이를 macro함수로 구현하게 되면 API호출을 줄일 수 있습니다. assembly를 사용하여 구현이 가능하지만, 이는 환경에 영향을 받기 때문에 macro함수로 구현하였습니다 call이 제한된 상황에서 유용하게 사용 할 수 있습니다. 어떤 운영체제에서도 동일한 작동을 보장 받을 수 있는 함수가 필요하였습니다. 구현을 위해 참고 한 문서 https://devdocs.io/c/preprocessor http://tcpschool.com/c/c_prepro_macroFunc 구현한 코드 1234567891011121314151617181920212223242526272829#ifndef _MEMIO_H#define .. 비주얼스튜디오 2019, 64비트에서 어셈블리 컴파일 64비트에선 편리하던 inline assembly의 사용이 불가능하다. 따라서, MASM을 사용하여 assembly를 작성해야한다. 콘솔 프로젝트 생성이후, Build Dependencies -> Build Customizations -> Build Customization을 클릭하면 다음과 같은 윈도우가 나온다. masm을 선택한다. 선택한이후, Source Files -> New Item 그리고 FILENAME.asm 을 입력하면 성공적으로 asm파일이 추가된다. 이제 컴파일옵션에서 asm파일을 링크해주어야한다. FILENAME.asm을 클릭하면 Properties가 나온다. Alt + Enter 입력하면 다음과 같은 윈도우가 나온다. Excluted From Build -> NO Item Type .. 파일 버퍼링 구현 (C/CPP) 대용량파일의 경우, 버퍼를 한번사용하는것으로 모든 데이터를 옮겨담는것이 불가능 또는 비효율적이다. 버퍼를 여러번 써서 파일을 덧쓰는것이 효율적인 방법이다. 이전 1 다음