2012-02-16 3 views
9

C++에서 system()shellexecute()의 주요 차이점은 무엇입니까?시스템 대 ShellExecute - 차이점은 무엇입니까?

어떤 상황에서 system()shellexecute()을 사용해야합니까?

+2

'ShellExecute'는 C++과 아무 관련이 없습니다. – ildjarn

+0

시스템이 표준이며, shellexecute가 아니며, 이전을 사용하십시오. – 111111

+1

@ 111111 왜 그런 말을합니까? 사용자 기본 브라우저에서 URL을 열려고하는 Windows에서 실행되는 코드를 작성한다고 가정 해보십시오. 확실하게'ShellExecute'가 올바른 해결책입니다. –

답변

7

표준 C++에는 shellexecute과 같은 것이 없습니다. 따라서 차이점은 없습니다.

거기 는 Win32 기능 ShellExecute하지만 그건 Win32 함수가 아닌 C++ system 같은 표준 기능입니다.

ShellExecutesystem과 다른 점이 있습니다. system은 (다소간) 명령 행에 명령을 입력하는 것과 같습니다. ShellExecute은 파일을 두 번 클릭 (또는 마우스 오른쪽 버튼으로 클릭하고 목록에서 "동사"를 선택)하는 것과 같습니다.

그들은 실제로 공통점이 없습니다.

+0

고마워, 알았다. – xRed

+0

'system'을 호출하면 제어는 실행이 완료 될 때까지 프로그램으로 돌아 가지 않으며'ShellExecute'는 완료를 기다리지 않습니다. –

+4

'ShellExecute'는 실제로 많은 일을 할 수있는 매우 강력한 기능입니다. 힘의 핵심은 매개 변수로 "동사"를 지정하는 기능입니다.이 동사는 수행 할 작업을 함수에 알려줍니다. 따라서 다양한 방식으로 행동하도록 지시받을 수 있으므로 특정 방식으로 행동하는 것으로 특성화하는 것은 다소 부정확합니다. 이것은 물론 그 힘과 효용의 열쇠입니다. Win32 코드를 작성할 때,'ShellExecute'가 항상'system'보다 우선되어야합니다. –

관련 문제