2017-12-27 35 views
0

Visual Studio의 디버깅 세션 중에 명령 줄 인수 < (따옴표없이 단일 꺾쇠 괄호)을 C++ 프로그램에 전달하려고합니다. Project settings for a C++ debug configuration에 설명 된대로 <은 리디렉션 연산자로 특별한 의미가 있지만 이스케이프 방법을 지정하지 않습니다. 내가 "<"^<을 사용해 보았지만, 내가 원하는 것을하지 않았습니다. 명령 줄에서 "<" 인수를 사용하여 명령을 호출하면 예상대로 작동합니다.Visual Studio 디버깅 명령 인수에서 이스케이프 처리

디버깅 명령 인수가 먼저 처리됩니다. 이 전처리 과정에서 캐릭터를 피할 수있는 방법이 있습니까?

+0

사용하고자하는 완전한 명령 줄 ("<", 나에게 맞는 것은 없나요?)과 사용중인 Visual Studio 버전을 알려주십시오. –

+0

'<'는 인수가 아니기 때문에 작동합니다. 리디렉션 연산자입니다. 실제로 실행 파일에 인수를 전달하지는 않습니다. 질문에서 언급했듯이, 단일 인수 인'<'문자열을 전달하려고합니다. –

+0

내가 말한대로 : 그것은 나를 위해 작동합니다. "<"(큰 따옴표 사용)를 입력하면 "<"(큰 따옴표 제외)가 내 프로그램으로 전달됩니다. 그래서 내가 요청한대로 더 많은 정보를 제공하십시오. –

답변

0

"디버깅 시작"이 사용되면 "<"을 전달하는 것처럼 보입니다. "디버깅하지 않고 시작"을 사용 했으므로 "<"을 빈 콘솔 응용 프로그램에 전달하고 "디버깅하지 않고 시작"을 호출하여 문제를 재현 할 수 있습니다.

"디버깅하지 않고 시작"은 cmd.exe를 실제로 호출하는 것 같습니다. 따라서 명령 인수는 명령 줄 해석 규칙의 적용을받습니다. 질문은 실제로 명령 행에서 <을 탈출하는 방법으로 밝혀졌습니다. < 큰 따옴표 바깥 쪽은 ^<을 사용하여 이스케이프 처리 할 수 ​​있지만 여전히 큰 따옴표 안에 <을 이스케이프 처리하는 방법을 알지 못합니다.

디버깅 명령 인수의 해석은 프로그램 시작 방법에 따라 다른 규칙이 적용된다는 것은 다소 놀라운 일입니다.

+0

매우 흥미 롭습니다. 나는 그것을 재현 할 수 있지만 해결책이 없다. MS 커뮤니티 사이트에서 질문을하는 것이 좋을 것입니다 (그리고 아마도 여기에 답변을 다시 게시하십시오). –

+0

@Igor Akhmetov, 여기서 솔루션을 공유해 주셔서 감사합니다. 가능한 경우 답변으로 표시 할 수 있습니다. 또한 "디버깅하지 않고 시작 (Ctrl + F5)"및 "디버깅 시작 (F5)"을 사용하여 동일한 결과를 얻습니다. 이 문제는 Werner Henze의 제안과 같이 커뮤니티 사이트 (https://developercommunity.visualstudio.com/spaces/8/index.html)에 신고 할 수 있습니다. 솔루션을 다시 공유해 주셔서 감사합니다. 좋은 하루 되세요 :) –