C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[73502] Re:Re:컴파일 오류 질문입니다 ... ShellExecute와 ShellExecuteA와의 차이 ...
예성곤 [skyinmine] 4743 읽음    2016-03-31 21:55
아이고 감사합니다..


빌더(TWx) 님이 쓰신 글 :
: 예성곤 님이 쓰신 글 :
: : 지금 XE4/XE7을 각각 사용 중입니다.
: : (Windows 10 64비트 : XE4,,, Windows 7 32비트 : XE7)
: :
: : 그런데 간단한 코드 컴파일 오류가 나는데 그 차이는 ShellExecute 와 ShellExecuteA 뿐 입니다.
: :
: : AnsiString TempBMPFName=ChangeFileExt(ParamStr(0),".bmp");
: : Image1->Picture->SaveToFile(TempBMPFName);
: : ShellExecute(NULL, "print", TempBMPFName.c_str(), NULL, NULL, SW_HIDE);
: :
: : >>>>> [bcc32 Error] MainUnit.cpp(402): E2034 Cannot convert 'char const[6]' to 'const wchar_t *' 오류 발생
: :
: : 그런데
: : ShellExecuteA(NULL, "print", TempBMPFName.c_str(), NULL, NULL, SW_HIDE); 에서는 정상 컴파일 됩니다.
: :
: : 무슨 차이일까요?
: : ShellExecuteA 이외는 모두 오류가 납니다.
: :
: : 아래 코드도 동일한 오류 발생합니다.
: :
: :                   SHELLEXECUTEINFO ExVal;
: :
: :           ExVal.cbSize = sizeof(SHELLEXECUTEINFO);
: :           ExVal.fMask = NULL;
: :           ExVal.hwnd = NULL;
: :           ExVal.lpVerb = NULL;
: :           ExVal.lpFile = "NATEON40.exe";
: :           ExVal.lpParameters = NULL;
: :           ExVal.lpDirectory = NULL; //"C:\\";
: :           ExVal.nShow = SW_SHOWNORMAL;
: :           ExVal.hInstApp = NULL;
: :
: :           ShellExecuteEx(&ExVal);
: :
: :
: : 유니코드 안시코드 참 모르겠습니다.
: :
: :
: :
:
: 윈도우즈 API 중에서 문자열을 인수로 받는 API는 MBCS와 유니코드 두가지가 있고, XE 툴은 기본적으로 유니코드를 사용하기 때문에
: 소스코드에서 ShellExecute() 를 사용할 경우 실제적으론 매크로 치환돼서 ShellExecuteW()가 사용됩니다.
:
: 따라서...
:
: ShellExecute(NULL, "print", TempBMPFName.c_str(), NULL, NULL, SW_HIDE);
:
: 위 코드를...
:
: ShellExecute(NULL, L"print", TempBMPFName.c_str(), NULL, NULL, SW_HIDE);
:
: 위와같이 문자열 앞에 'L'을 붙여서 유니코드 문자열 임을 명시해야 합니다.
:
: 이런 건, 가장 기본적인 C++ 기초 인데요...

+ -

관련 글 리스트
73499 컴파일 오류 질문입니다 ... ShellExecute와 ShellExecuteA와의 차이 ... 예성곤 4533 2016/03/31
73501     Re:컴파일 오류 질문입니다 ... ShellExecute와 ShellExecuteA와의 차이 ... 빌더(TWx) 5044 2016/03/31
73502         Re:Re:컴파일 오류 질문입니다 ... ShellExecute와 ShellExecuteA와의 차이 ... 예성곤 4743 2016/03/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.