Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Visual C++ / x64 환경에서 inline-assembly를 매크로 어셈블리로 대체하는 방법 - 두 번째 이야기

이전에 쓴 글이 있었는데,

Visual C++ / x64 환경에서 inline-assembly를 매크로 어셈블리로 대체하는 방법
; https://www.sysnet.pe.kr/2/0/1759

아래의 글에서 더 편리한 방법을 소개하고 있습니다.

x64 Inline Assembly in Windows Driver Kit
; https://rayanfam.com/topics/inline-assembly-in-x64/

그런데, 직접 해보니까 WDK 프로젝트인 경우에는 asm 파일을 자동으로 masm.exe에 태워 빌드해 주는 반면 일반 C/C++ 프로젝트에서는 그런 배려가 없습니다. 실제로 WDK 프로젝트에서 .asm 파일을 추가하는 경우 속성 창을 통해 보면 다음과 같이 "Item Type"으로 "Microsoft Macro Assembler" 항목이 자동으로 선택되어 있지만,

macro_assembly_x64_1.png

일반 Visual C++ 프로젝트에서는 .asm 파일의 속성을 보면 다음과 같이 "Does not participate in build"로 뜨는 데다 "Microsoft Macro Assembler" 항목도 없어 선택조차 못합니다.

macro_assembly_x64_2.png

그래도 어차피 비주얼 스튜디오인데... 방법이 있지 않을까 싶어 검색해 보니 다음의 글이 나옵니다. ^^

Visual Studio 2015에서 Assembly 실행(MASM)
; http://moomini.tistory.com/80

그렇습니다. 솔루션 탐색기에서 Visual C++ 프로젝트를 우 클릭해 "Build Dependencies" / "Build Customizations..."를 선택하면 다음과 같이 masm 항목을 추가할 수 있는 설정창이 뜹니다.

macro_assembly_x64_3.png

이렇게 선택해 주고, 다시 .asm 파일의 속성을 보면 "Microsoft Macro Assembler" 항목이 보이게 되고 이를 선택하면 .asm 파일이 자동으로 빌드되고 링크 과정에 참여하게 됩니다.





[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 9/13/2018 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 




... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
11727정성태10/10/20182535오류 유형: 491. Visual Studio의 리눅스 SSH 원격 연결 - "Connectivity Failure. Please make sure host name and port number are correct."
11726정성태10/7/20183585사물인터넷: 49. 라즈베리 파이를 이용해 원격 컴퓨터의 전원 스위치 제어파일 다운로드1
11724정성태10/12/20203544개발 환경 구성: 407. 유니코드와 한글 - "Hangul Compatibility Jamo"파일 다운로드1
11723정성태10/4/20182134개발 환경 구성: 406. "Docker for Windows" 컨테이너 내의 .NET Core 응용 프로그램에서 직렬 포트(Serial Port, COM Port) 사용 방법
11722정성태10/4/20182625.NET Framework: 798. C# - Hyper-V 가상 머신의 직렬 포트와 연결된 Named Pipe 간의 통신파일 다운로드1
11721정성태10/4/20183232.NET Framework: 797. Linux 환경의 .NET Core 응용 프로그램에서 직렬 포트(Serial Port, COM Port) 사용 방법파일 다운로드1
11720정성태10/4/20183749개발 환경 구성: 405. Hyper-V 가상 머신에서 직렬 포트(Serial Port, COM Port) 사용
11719정성태10/4/20183505.NET Framework: 796. C# - 인증서를 윈도우에 설치하는 방법
11718정성태8/4/20201989개발 환경 구성: 404. (opkg가 설치된) Synology NAS(DS216+II)에 cmake 설치
11717정성태10/3/20182105사물인터넷: 48. 넷두이노의 C# 네트워크 프로그램
11716정성태10/3/20182850사물인터넷: 47. Raspberry PI Zero (W)에 FTDI 장치 연결 후 C/C++로 DTR 제어파일 다운로드1
11715정성태10/3/20182769사물인터넷: 46. Raspberry PI Zero (W)에 docker 설치
11714정성태10/2/20182250사물인터넷: 45. Raspberry PI에 ping을 hostname으로 하는 방법
11713정성태10/2/20184612개발 환경 구성: 403. Synology NAS(DS216+II)에 docker 설치 후 .NET Core 2.1 응용 프로그램 실행하는 방법
11712정성태6/26/20196190.NET Framework: 795. C# - 폰트 목록을 한글이 아닌 영문으로 구하는 방법 [3]
11711정성태10/2/20184411오류 유형: 490. 윈도우 라이선스 키 입력 오류 0xc004f050, 0xc004e028
11710정성태10/5/20182924.NET Framework: 794. C# - 같은 모양, 다른 값의 한글 자음을 비교하는 호환 분해 [5]
11709정성태12/7/20182099개발 환경 구성: 402. .NET Core 콘솔 응용 프로그램을 docker로 실행/디버깅하는 방법 [1]
11708정성태2/27/20203495개발 환경 구성: 401. .NET Core 콘솔 응용 프로그램을 배포(publish) 시 docker image 자동 생성 [1]파일 다운로드1
11707정성태9/30/20182142오류 유형: 489. ASP.NET Core를 docker에서 실행 시 "Failed with a critical error." 오류 발생
11706정성태9/29/20182730개발 환경 구성: 400. Synology NAS(DS216+II)에서 실행한 gcc의 Segmentation fault [2]
11705정성태9/29/20184183개발 환경 구성: 399. Synology NAS(DS216+II)에 gcc 컴파일러 설치
11704정성태9/29/20185004기타: 73. Synology NAS 신호음(beep) 끄기 [1]파일 다운로드1
11703정성태10/16/20183163개발 환경 구성: 398. Blazor 환경 구성 후 빌드 속도가 너무 느리다면? [1]
11702정성태9/26/20181809사물인터넷: 44. 넷두이노(Netduino)의 네트워크 설정 방법
11701정성태9/26/20183490개발 환경 구성: 397. 공유기를 일반 허브로 활용하는 방법파일 다운로드1
... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...