케이피's 불량블로그!

블로그 이미지

케이피

OOP, Debugging... 인생의 숙제들..... [블로그의 글을 맹신하면 곤란]

VS2008 unicode 에서 TRACE 사용시 한글이 안써지는 현상?

잡다한 정보들(기타정보) 2011. 7. 13. 17:15
_CrtDbgReport: String too long or IO Error
요따구 메시지가 나오면서 한글이 안나와... -_-;;
 

멀티바이트를 사용하면 몇몇 오버헤드를 감수해야하기때문에
유니코드 사용을 권장한다지만...

아니 유니코드 쓰라면서
TRACE 엔 한글 지원하려면 또 다른 코드를 추가해야하니...
왜케 귀찮음? 이래 귀찮아서 유니코드 쓰겠음?

정말 트래이스 쓸때마다
#include <locale.h>
추가

사용시마다
#ifdef _DEBUG
     _tsetlocale(LC_ALL, _T("korean"));
     TRACE(L"어쩌구");
#endif

이질알을 해야한다구? 이런 갓뎀~

꼬우면 TRACE 내에 한글을 쓰지말고 영문만 쓰거나
::OutputDebugString() 을 써야할듯...


* DebugView
TRACE() 도 ::OutputDebugString() 도 모두 나온다.
Visual Studio 에서 디버그로 실행 시에는 Output Pane 이 메세지를
먹어버리기 때문에 DebugView 에는 표시가 안됨


Posted by 케이피

LPCSTR to CString, CString to LPCTSTR

잡다한 정보들(기타정보) 2011. 7. 8. 16:14
 * LPCSTR to CString
LPCSTR lpszStr;
USES_CONVERSION;
CString A = A2CT(lpszStr);

 * CString to LPCSTR
CString sOrg;
LPCSTR lpszA = (LPSTR)(LPCTSTR)sOrg;
Posted by 케이피

C#에서 Excel Automation은 ".NET 프로그래밍 지원" 옵션이 필요해???

베스트똘추짓(개고생리스트) 2011. 7. 8. 16:11
업무)
 차트 데이터를 Excel 파일로 떨궈주길 바라는 요청 (.NET 에서 C# 사용하여 개발)
담당자인 김대리가 C#을 Excel Automation(C++에선 이렇게 부르던데 C#도 이렇게 부르는거 맞나?)을 
통해 무난하게 기능 추가개발

증상)
 오잉? 엑셀 기능을 넣으니 몇몇 PC에서 예외를 Throw 한다는 메시지와 함께 동작하지를 않음

의심)
 첨엔 "설마 C#에선 엑셀관련 기능을 추가해 배포할 때 따로 설치해줘야하는것이 있단말인가?" 하는 말도 안돼는
생각을 잠깐 해봤음...
하지만 MFC에서 해본 경험상 그럴리는 없을텐데... 엑셀만 설치되 있다면 추가적으로 필요한건 없는게 당연한거지
설치된 Excel COM 객체를 사용할텐데... Excel만 설치되있음 문제 없는게 당연한거 아냐?
MS도 그렇게 바보같이 해놨을리는 없구... 

해결과정)
 테스트 PC에서 DbgView와 ::OutputDebugString으로 무식하게 찍어보던중
제대로된 예외문자열을 보게됨
 - 원격 디버그 미숙과 제대로된 디버그 스킬이 없어서...  ㅠ_ㅠ

[7140] ---------- 잡았다 예외!
[7140] System.Reflection.TargetInvocationException: 호출 대상이 예외를 Throw했습니다. ---> System.IO.FileNotFoundException: 파일이나 어셈블리 'Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다.
[7140] 파일 이름: 'Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
[7140]    위치: nogadaLib.nogada.InitializeComponent()
[7140]    위치: nogadaLib.nogada..ctor()

결론)
 
구글형님께 문의한 결과!
Office 설치시 .NET 프로그래밍 지원을 체크 안하면 요렇게 되는거임...

 Office 를 기본 설치 안하고 사용자지정으로 설치하면 이렇게 될수가 있음
1) 제어판 -> 내 프로그램 추가제거 (윈도우 버전에 따라 알아서) 
2) Microsoft Office ...  변경 -> 기능추가/제거
3) Excel에서 '+' 클릭 -> .NET 프로그래밍 지원 을 "내 컴퓨터에서 실행"으로 변경
4) 변경 대기~~

교훈)
 괜히 고급사용자라고 꼴에 사용자지정 설치를 하면 안될거같아....
그래도 덕분에 하나 알았네~ ㅎ

PS1.
 열심히 원인을 찾아냈지만 사용자에게 일일히 .NET 프로그래밍 지원을 켜라고 할수는 없는
노릇이다라는 반응... 끙...
결국 DLL 에 엑셀 Automation 하는 함수를 추가해서 C# 코드에서 호출하는 방식으로 해결...

 왜 Office에선 그런 옵션을 만들어서... C# 사용자들이 힘들게 하는거지?
뭐 똑똑한 MS놈들이 생각이 다 있어서 했겠지만...

PS2.
 Office에 ".NET 프로그래밍 지원" 을 켜주는 다른 방법은 없는건가?
구찮아서 찾아보지는 않았지만 김대리의 구글검색 결과 찾기가 쉽지는 않은듯함...
알면 좀 갈켜주삼~ 
Posted by 케이피
이전페이지 다음페이지
블로그 이미지

OOP, Debugging... 인생의 숙제들..... [블로그의 글을 맹신하면 곤란]

by 케이피

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • Automation
  • excel
  • CView
  • 최강 볼걸
  • MFC Tip
  • XML
  • debugging
  • bug
  • 엠마스톤
  • CNN
  • activex
  • 8강전
  • Emma Stone
  • CString
  • Mentor
  • trace
  • dbgView
  • MFC
  • JAVA 맛보기
  • 최적화?
  • DLL
  • IME
  • vs2008
  • SmartClient
  • OOP
  • c#
  • LPCSTR
  • 안드로이드
  • 객체지향
  • 유로2008 일정

글 보관함

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

링크

카테고리

전체보기 (98)
Qt의 오묘함 (1)
영양가없는이야기(개인사) (1)
주체못할파괴본능(디버그) (5)
넌왜C++을C처럼쓰냐?(OOP) (2)
잡다한 정보들(기타정보) (53)
귀찮아...(유용링크) (13)
참 잼난다(취미) (6)
JAVA 의 향기~(자바) (2)
코딩을부탁해(Rapid Coding) (0)
베스트똘추짓(개고생리스트) (11)
매운핫소스(허접소스) (1)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
케이피's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

케이피's 불량블로그!

OOP, Debugging... 인생의 숙제들..... [블로그의 글을 맹신하면 곤란]

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 전체보기 (98)
    • Qt의 오묘함 (1)
    • 영양가없는이야기(개인사) (1)
    • 주체못할파괴본능(디버그) (5)
    • 넌왜C++을C처럼쓰냐?(OOP) (2)
    • 잡다한 정보들(기타정보) (53)
    • 귀찮아...(유용링크) (13)
    • 참 잼난다(취미) (6)
    • JAVA 의 향기~(자바) (2)
    • 코딩을부탁해(Rapid Coding) (0)
    • 베스트똘추짓(개고생리스트) (11)
    • 매운핫소스(허접소스) (1)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바