안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2015년 9월 1일 화요일

Json 특수문자 처리

하루 종일 고생했던 특수문자 드디어 처리했다 아래 블로그 주인장님 사랑합니다
qqqqqq.tistory.com/entry/JSON-표기법-응답-생성시-주의점

2015년 6월 6일 토요일

REG-RESP? iPhone 메세지 해결 방법

이대로 하세요. 매우 굳 한글화 iMessage 로그 아웃 1. 최신버전 iOS 받기 2. iPhone 과 같은 Apple ID 인지 확인 3. iMessage Sign Out 4. 세팅 -> 메시지 -> Send & Recevie Sign Out 5. Setting -> FaceTime Apple ID 누르고 Sign Out Apple ID로 Face Time 과 iMessage 로그인 그래도 phone number가 없으면 모든 iOS Device에서 Apple ID 로그 아웃 (iPhone 포함) 1. 세팅 -> 메시지 -> Send & Recevie Sign Out 2. Setting -> FaceTime Apple ID 누르고 Sign Out 3. iPhone에 Apple ID로 로그인 4. 활성화 완료하면, 해당 email 이 세팅 -> 메시지 -> Receive 와 세팅 -> FaceTime 에 나타남 다른 iOS Device에도 Apple ID로 로그인 하기 Hello Massive444, Thanks for using Apple Support Communities. Please sign out of iMessage, and sign back in as directed below. Update to the latest version of iOS. Verify that you're using the same Apple ID that you're using on your iPhone. On your iPad or iPod touch, sign out of your Apple ID in the following locations: Settings > Messages > Send & Receive. Tap your Apple ID, then tap Sign Out. Settings > FaceTime. Tap your Apple ID, then tap Sign Out. Sign in to your Apple ID with FaceTime and iMessage. If your phone number still isn't listed, follow these steps: Sign out of your Apple ID on all iOS devices, including your iPhone, in the following locations: Settings > Messages > Send & Receive. Tap your Apple ID, then tap Sign Out. Settings > FaceTime. Tap your Apple ID, then tap Sign Out. Sign in to your Apple ID on your iPhone. When activation is complete, your Apple ID and all verified email addresses should be visible in Settings > Messages > Receive At and Settings > FaceTime. Sign in to your Apple ID on your other iOS devices. 출처 : https://discussions.apple.com/thread/6555015 Apple 고객센터 답변입니다. iOS: FaceTime 및 iMessage 활성화 문제 해결 iPhone, iPad 또는 iPod touch에서 FaceTime 및 iMessage 활성화와 관련된 문제를 해결하는 방법에 대해 알아봅니다. iPhone에서는 FaceTime 및 iMessage에서 사용할 전화 번호가 자동으로 등록됩니다. Apple ID로 FaceTime을 사용하려면 '설정' > 'FaceTime'으로 이동한 다음 'FaceTime용 Apple ID 사용'을 탭합니다. Apple ID로 iMessage를 사용하려면 '설정' > '메시지' > '수신'으로 이동한 다음 'iMessage용 Apple ID 사용'을 탭합니다. iPad 또는 iPod touch에서 FaceTime 또는 iMessage를 활성화할 때는 유효한 Apple ID와 암호를 입력해야 합니다. 다른 사용자가 이 이메일 주소를 사용하여 FaceTime 및 iMessage로 사용자에게 연락할 수 있습니다. '활성화 대기 중', "활성화하는데 실패했습니다." 또는 "활성화하는 동안 오류가 발생했습니다."라는 메시지가 표시되는 경우 iPhone에서 전화 번호로 iMessage 또는 FaceTime을 활성화하려는 경우 이러한 메시지가 표시됩니다. 이러한 상태 메시지를 해결하려면 다음 단계를 따릅니다. 각 단계를 수행한 후 '설정' > '메시지' 및 '설정' > 'FaceTime'에서 FaceTime 및 iMessage를 껐다가 다시 켭니다. iOS 최신 버전으로 업데이트합니다. 셀룰러 제공업체에서 셀룰러 네트워크 연결을 제공하는지 확인합니다. iPhone 전화 번호로 iMessage 및 FaceTime을 활성화하려면 셀룰러 네트워크 연결이 필요합니다. Safari에서 www.apple.com/kr로 이동하여 데이터 연결을 사용하고 있는지 확인합니다. iPhone 전화 번호로 iMessage 및 FaceTime을 활성화하려면 데이터 연결이 필요합니다. SMS를 보내고 받을 수 있는지 확인합니다. FaceTime 및 iMessage를 활성화하려면 유효한 SMS 메시지 요금제가 필요합니다. '설정' > '일반' > '차단' > 'FaceTime'을 탭하여 FaceTime이 차단되지 않았는지 확인합니다. '설정' > '일반' > '날짜와 시간'을 탭하여 iPhone을 올바른 시간대로 설정합니다. 참고: 자동으로 설정이 켜져 있지만 잘못된 시간대가 나타나는 경우 '자동으로 설정'을 끄고 올바른 시간대, 날짜 및 시간을 선택하십시오. 네트워크 사업자에 문의하여 문자 메시지가 제한 또는 차단되어 있거나 필터링되어 있지 않은지 확인합니다. 문자 메시지가 제한 또는 차단되어 있거나 필터링되어 있으면 iMessage 및 FaceTime 등록을 완료할 수 없습니다. 이러한 단계를 수행했는데도 계속해서 '활성화 대기 중'이라는 메시지가 나타나면 '설정' > '메시지' 및 '설정' > 'FaceTime'에서 FaceTime 및 iMessage를 껐다가 켭니다. 활성화가 완료되는 데 최대 24시간이 걸릴 수도 있습니다. 대부분은 1시간 내에 완료되지만 최대 24시간이 걸리는 경우도 있습니다. 24시간이 지나도 문제가 해결되지 않으면 Apple에 문의합니다. iPhone에서 최근에 원격 삭제를 수행한 경우 원격 삭제를 수행한 시간으로부터 24시간 정도 기다린 다음 iMessage를 껐다가 다시 켭니다. 다음 상태 메시지가 나타나더라도 Apple ID로 iMessage 및 FaceTime을 활성화할 수 있습니다. 다음을 탭하면 Apple ID로 FaceTime 및 iMessage를 활성화했는지 확인할 수 있습니다. '설정' > 'FaceTime' > '사용자의 FACETIME 연락처:' '설정' > '메시지' > '발신 및 수신' > '사용자의 IMESSAGE 연락처:' Apple ID로 로그인할 때 "로그인할 수 없습니다. 네트워크 연결을 확인하고 다시 시도 하십시오."라는 메시지가 표시되는 경우 이 문제를 해결하려면 다음 단계를 따릅니다. iOS 최신 버전으로 업데이트합니다. Safari에서 www.apple.com/kr로 이동하여 데이터 연결을 사용하고 있는지 확인합니다. Wi-Fi 또는 셀룰러 데이터 연결을 사용하여 Apple ID 활성화를 완료할 수 있습니다. Wi-F에 연결하는 데 도움이 필요한 경우 이러한 단계를 따릅니다. Wi-Fi를 사용하고 있는 경우 로컬 Wi-Fi 네트워크에서 권장 Wi-Fi 설정을 사용하고 있는지 확인합니다. 사용자 계정에 로그인하고 기본 이메일 주소 및 대체 이메일 주소가 확인되었는지 확인합니다. 확인이 보류 중인 경우 Apple에서 해당 이메일 주소로 보낸 이메일에 나와 있는 지침에 따라 확인을 완료합니다. 또는 계정에서 이메일 주소를 제거합니다. Apple ID가 이메일 주소가 아닌 경우 Apple ID를 변경할 수 있습니다. FaceTime 또는 iMessage를 활성화하는 데 사용하는 Apple ID는 이메일 주소여야 합니다. 자세한 내용은 Apple ID 변경 방법을 참조하십시오. '설정' > '일반' > '날짜와 시간'을 탭합니다. iPhone이 올바른 시간대로 설정되어 있는지 확인합니다. 자동으로 설정이 켜져 있지만 잘못된 시간대가 나타나는 경우 '자동으로 설정'을 끄고 올바른 시간대, 날짜 및 시간을 선택합니다. 셀룰러 데이터 연결을 사용할 수 없는 경우 다른 위치에서 다른 Wi-Fi 네트워크에 연결되어 있을 때 iMessage 및 FaceTime을 활성화합니다. 다음 단계에 따라 Apple ID로 FaceTime 및 iMessage를 활성화했는지 확인할 수 있습니다. '설정' > 'FaceTime' > '사용자의 FACETIME 연락처:'를 탭합니다. '설정' > '메시지' > '발신 및 수신' > '사용자의 IMESSAGE 연락처:'를 탭합니다. Apple ID로 로그인할 때 "이미 사용 중이기 때문에 이메일을 확인할 수 없습니다."라는 메시지가 표시되는 경우 이 문제를 해결하려면 이러한 단계를 따릅니다. 24시간을 기다렸는데도 FaceTime 또는 iMessage를 활성화할 수 없는 경우 이러한 문제 해결 단계를 수행했는데도 위의 증상을 여전히 해결할 수 없는 경우 Apple에 문의하십시오. Apple ID에서 로그아웃하려면 '설정' > 'FaceTime'으로 이동하여 Apple ID를 탭한 후 '로그아웃'을 선택합니다. '설정' > '메시지' > '발신 및 수신'으로 이동하여 Apple ID를 탭한 후 '로그아웃'을 선택합니다. FaceTime 및 iMessage에서 사용하기 위해 전화 번호와 Apple ID 연결에 대한 자세한 내용을 확인하십시오. 방화벽으로 보호되는 FaceTime 및 iMessage 사용과 관련된 문제가 발생한 경우 지원을 받으십시오. Wi-Fi 라우터 및 액세스 포인트의 권장 설정을 참조하십시오. FaceTime은 일부 국가 또는 지역에서는 사용하지 못할 수 있습니다. iPhone에서 전화 번호로 FaceTime 및 iMessage를 활성화하려면 SMS 메시지가 필요합니다. 네트워크 사업자에 따라 이 SMS에 대해 요금이 부과될 수 있습니다. 중요: Apple에서 제조하지 않은 제품에 대한 정보는 정보 목적만을 위해 제공되는 것이며 Apple에서 권장하거나 보증하는 부분이 아닙니다. 자세한 내용은 해당 공급업체에 문의하십시오. 최근 수정일: 2014. 3. 13 출처: https://support.apple.com/ko-kr/TS4268

2015년 6월 2일 화요일

CRecordset과 ODBC 자동 로그인

하아 찾았다. 감동 GetDefaultConnect() 에서 아래와 같이 할 것 return _T("ODBC;DSN=aaa;ID=LogID;PWD=LogPass;");가 아니라 return _T("ODBC;DSN=aaa;UID=LogID;PWD=LogPass;");이더군요 ㅡ,.ㅡ ID를 UID로 바꿔야 합니다. 출처: http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=50&MaeulNo=20&no=196465&ref=196327

2015년 4월 25일 토요일

CRecordSet Data가 잘립니다. 현상 해결 방법

Visual C++SQL: SQL 및 C++ 데이터 형식(ODBC) 참고 이 내용은 MFC ODBC 클래스에 적용됩니다. MFC DAO 클래스를 사용하려면 DAO 도움말의 "Microsoft Jet 데이터베이스 엔진 SQL과 ANSI SQL의 비교" 항목을 참조하십시오. 다음은 ANSI SQL 데이터 형식을 C++ 데이터 형식으로 매핑한 표입니다. 이 표는 MSDN LIBRARY CD의 ODBC SDK 프로그래머 참조에 있는 부록 D의 C 언어 내용을 보완한 것입니다. 마법사는 대부분의 데이터 형식 매핑을 자동으로 관리합니다. 마법사를 사용하지 않는 경우 해당 매핑 정보를 사용하면 필드 교환 코드를 직접 작성하기가 쉬워집니다. C++ 데이터 형식에 매핑되는 ANSI SQL 데이터 형식 ANSI SQL 데이터 형식 C++ 데이터 형식 CHAR CString DECIMAL CString 1 SMALLINT int REAL float INTEGER long FLOAT double DOUBLE double NUMERIC CString 1 VARCHAR CString LONGVARCHAR CLongBinary, CString 2 BIT BOOL TINYINT BYTE BIGINT CString 1 BINARY CByteArray VARBINARY CByteArray LONGVARBINARY CLongBinary, CByteArray 3 DATE CTime, CString TIME CTime, CString TIMESTAMP CTime, CString 1. SQL_C_CHAR가 기본 ODBC 전송 형식이기 때문에 ANSI DECIMAL 및 NUMERIC은 CString에 매핑됩니다. 2. 255자를 넘는 문자 데이터는 CString에 매핑될 때 기본값으로 잘립니다. RFX_Text의 nMaxLength 인수를 명시적으로 설정하면 잘림 길이를 늘릴 수 있습니다. 3. 255자를 넘는 이진 데이터는 CByteArray에 매핑될 때 기본값으로 잘립니다. RFX_Binary의 nMaxLength 인수를 명시적으로 설정하면 잘림 길이를 늘릴 수 있습니다. ODBC 커서 라이브러리를 사용하지 않는 경우 Microsoft SQL Server ODBC 드라이버 및 MFC ODBC 데이터베이스 클래스를 사용하여 둘 이상의 긴 가변 길이 필드를 업데이트하려고 하면 문제가 발생할 수 있습니다. ODBC 형식 SQL_LONGVARCHAR 및 SQL_LONGVARBINARY는 텍스트 및 이미지 SQL 서버 형식으로 매핑됩니다. 동일한 CRecordset::Update 호출에서 둘 이상의 긴 가변 길이 필드를 업데이트하면 CDBException이 throw됩니다. 따라서 CRecordset::Update를 사용하여 여러 개의 긴 열을 동시에 업데이트하면 안 됩니다. 여러 개의 긴 열은 ODBC API SQLPutData를 사용하여 동시에 업데이트할 수 있습니다. ODBC 커서 라이브러리를 사용할 수도 있습니다. 그러나 SQL Server 드라이버처럼 커서를 지원하지만 커서 라이브러리가 필요 없는 드라이버에 대해서는 ODBC 커서 라이브러리를 사용하지 않는 것이 좋습니다. MFC ODBC 데이터베이스 클래스 및 Microsoft SQL Server ODBC 드라이버와 함께 ODBC 커서 라이브러리를 사용하는 경우 CRecordset::Update를 호출한 다음 CRecordset::Requery를 호출하면 CDBException과 함께 ASSERT가 발생할 수도 있습니다. 그러므로 CRecordset::Requery 대신 CRecordset::Close를 호출한 다음 CRecordset::Open을 호출하는 것이 좋습니다. 다른 해결책은 ODBC 커서 라이브러리를 사용하지 않는 것입니다. SQL Server 및 SQL Server ODBC 드라이버는 기본적으로 커서를 지원하기 때문에 ODBC 커서 라이브러리가 필요하지 않습니다. 참고 항목 개념 SQL SQL: SQL 직접 호출(ODBC) 출처 : http://msdn2.microsoft.com/ko-kr/library/eshhha8h(VS.80).aspx 내 출처: http://blog.naver.com/saojung50?Redirect=Log&logNo=120037017632 감사요

2015년 4월 6일 월요일

[MFC] CTimeSpan 날짜 비교

CTime time (2015,2,2,3,2,1) CTime time2 (2015,4,2,4,2,1) CSpanTime timedif = time - time2; 초 단위로 timedif에 차이값이 저장된다. 주의점은 time 선언시 CTime time(2015,1,1) 처럼 Year,Month,Day까지만 적지 말자. 동작하지 않는다.. 선언문을 확인해보니 H:M:S 까지 적지 않으면 제대로 동작하지 않는다.

[MFC] CTime 현재 시간 가져 오기

CTime time = CTime::GetCurrentTime();

[MFC] CTime과 String 변환 방법

유니코드 문자집합을 사용하는 경우로 한정합니다. (Visual Studio 2008 기준) //================================================================= // 1. CTime 에서 CString 으로 변환할 때 CString strDateTime; CTime tiTime(2008, 11, 12, 14, 54, 0); // 2008년 11월 12일 오후2시 54분 0초 strDateTime = tiTime.Format(_T("%04Y-%02m-%02d %02H:%02M:%02S")); //================================================================= // 2. CString에서 CTime 으로 변환할 때 CString strDateTime = _T("2008-11-12 14:54:00"); int nYear = _wtoi(strDateTime.Left(4)); int nMon = _wtoi(strDateTime.Mid(5,2); int nDay = _wtoi(strDateTime.Mid(8,2); int nHour = _wtoi(strDateTime.Mid(11,2); int nMin = _wtoi(strDateTime.Mid(14,2); int nSec = _wtoi(strDateTime.Mid(17,2); CTime tiTime(nYear, nMon, nDay, nHour, nMin, nSec); //================================================================= // 3. 활용 사례 // 1) SQL DB 에 넣고 뺄 때 // 2) Console Log View/Save 이상 허접한 팁이었습니다. 출처: http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8191&page=21

2015년 4월 1일 수요일

[MFC] 한글 깨짐 현상 해결

트랙백 주소 : http://www.tipssoft.com/bulletin/tb.php/QnA/255 (VC++ 6.0 ) Insert Resource에서 Dialog - IDD_DIALOGBAR [English (U.S.)] 해서 다이얼로그 박스를 만든 후 실행해 보면 다이얼로그 박스에 있는 한글이 다 깨집니다. 다이얼로그 박스 폰트를 굴림 등으로 해도 마찬가지고요. Insert Resource에서 Dialog 밑에 있는 것들을 보면 뒤에 다 English (U.S.)]이 붙어 있는데 한글판은 따로 있는 것인지? 한글을 제대로 나오게 하려면 어떻게 해야 하나요? 관리자 08-07-02 19:51 Date : 05-07-25 18:20 질문을 읽어보니 현재 님은 리소스의 언어설정이 영문으로 되어 있습니다. 이럴 경우 한글을 사용한다 하더라고 깨지는 현상이 발생됩니다. 먼저 리소스뷰에서 변경하고자 하는 리소스를 선택하신 후 오른쪽마우스 버튼을 눌러 나오는 팝업에서 Properties 를 선택, Language 부분의 내용을 Englis(U.S) 에서 Korean 으로 바꾸어 주시면 됩니다. 모든 변경 작업을 완료하신 후 ReBuild All 을 한번 실행해서 변경된 결과가 잘 나오는지 확인 해보세요 그럼 더운 날씨에 건강 유의하시고, 언제든지 문의 주세요......... 출처: http://www.tipssoft.com/bulletin/board.php?bo_table=QnA&wr_id=255

2015년 3월 26일 목요일

[MySQL] Auto Increment 값을 Select 구문에 넣기

mysql 구문인데 무슨 내용인지 모르겠지만 잘 동작한다.


SELECT @n := @n + 1 n,
       first_name, 
       last_name
  FROM table1, (SELECT @n := 0) n
 ORDER BY first_name, last_name

핵심은 Table Add 할 때 (Select @n := 0) n으로 Add하고
출력 구문에 @n := @n +1 n 으로 작성하면 동작함

Vㅔ리 굳


출처: http://stackoverflow.com/questions/16555454/how-to-generate-auto-increment-field-in-select-query

2015년 3월 19일 목요일

[MFC] MessageBox

Message Box 공부에 Vㅔ리 굳한 사이트 소개

nt MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
- 조그만 별도의 윈도우를 열어서 사용자에게 정보를 전달하거나 질문을 하는 장치
- 인수설명
hWnd : 부모 윈도우의 핸들을 입력한다. 부모가 없을 경우 NULL로 입력
lpText : 출력할 메시지의 내용을 입력한다. 모든 포맷의 문자열을 입력할 수 있다.
lpCaption : 메세지박스의 타이틀에 나타날 문자열을 입력한다. 기본값은 Error 이다.
uType : 메시지박스의 버튼,아이콘,동작방식을 결정한다. 여러 플래그를 | 로 조합사용한다.

인수 : uType (버튼의 종류 선택)
플래그
설 명
MB_ABORTRETRYIGNORE
Abort, Retry, Ignore 세 개의 버튼 표시
MB_OK
Ok 버튼 표시
MB_OKCANCEL
Ok, Cancel 두 개의 버튼 표시
MB_RETRYCANCEL
Retry, Cancel 두 개의 버튼 표시
MB_YESNO
Yes, No, 두 개의 버튼 표시
MB_YESNOCANCEL
Yes, No, Cancel 세 개의 버튼 표시



인수 : uType (버튼의 아이콘 선택)
플래그
설 명
MB_ICONEXCLAMATION, MB_ICONWARNING
MB_ICONINFORMATION, MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND



인수 : uType (디폴트 버튼 지정)
플래그
설 명
MB_DEFBUTTON1
첫번째 버튼이 디폴트 버튼이 된다. (기본값)
MB_DEFBUTTON2
두번째 버튼이 디폴트 버튼이 된다.
MB_DEFBUTTON3
세두번째 버튼이 디폴트 버튼이 된다.
MB_DEFBUTTON4
네번째 버튼이 디폴트 버튼이 된다.



인수 : uType (모달 여부 선택)
플래그
설 명
MB_APPMODAL
hWnd 윈도우의 모달 대화상자로 열리므로 메시지 박스를 닫기 전에는 같은 스레드에 속한 다른 윈도우로 전환할 수 없다. 그러나 다른 스레드의 윈도우로 전환할 수는 있으며 팝업 윈도우로도 전환할 수 있다. 아무 플래그도 지정되지 않으면 이 모드가 디폴트로 적용됨.
MB_SYSTEMMODAL
MB_APPMODAL과 동일하되 항상 위 스타일을 가져 모든 윈도우보다 위에 배치된다. 메모리 부족 등의 긴급한 상황을 알리고자 할 때 이 플래그를 사용.
MB_TASKMODAL
MS_APPMODAL과 동일하되 hWnd가 NULL일 경우 현재 스레드에 속한 모든 최상위 윈도우가 사용 금지된다는 점이 다르다. DLL이나 라이브러리에서 부모 윈도우로 지정할만한 윈도우가 없을 때 이 플래그를 사용한다.



인수 : uType (기타 옵션 선택)
플래그
설 명
MB_DEFAULT_DESKTOP_ONLY
사용자가 로그온안 후 응용 프로그램이 실행되고 있는 디폴트 데스크 탑인 경우만 메시지 박스가 나타나도록 한다.
MB_HELP
도움말 버튼을 보여준다. 이 버튼을 누르거나 F1키를 누르면 Help 이벤트가 발생한다.
MB_RIGHT
메시지를 오른쪽으로 정렬한다.
MB_RTLREADING
아랍이나 헤브루 윈도우즈에서 오른쪽에서 왼쪽 읽기로 출력한다. 한글 윈도우즈에서는 의미가 없다.
MB_SETFOREGROUND
메시지 박스를 포그라운드 윈도우로 만든다. 시스템은 내부적으로 SetForegroundWindow 함수를 호출한다.
MB_TOPMOST
항상 위 옵션으로 메시지 박스를 생성한다.
MB_SERVICE_NOTIFICATION
NT의 서비스 프로그램만 사용할 수 있는 플래그이다. 현재 로긴한 사용자가 없더라도 액티브되어 있는 데스크 탑에 메시지 박스를 출력한다. 이 경우 hWnd는 반드시 NULL이어야 한다.
MB_SERVICE_NOTIFICATION_NT3X
MB_SERVICE_NOTIFICATION와 동일하되 NT 3.51버전에서 사용한다.


- 리턴값 : 메시지 박스를 생성할 메모리가 부족할 경우 0을 리턴한다. 그 외의 경우 사용자가
누른 버튼의 ID를 리턴한다.

버  튼
IDABORT
Abort 버튼을 누를 경우
IDCANCEL
Cancel 버튼을 누를 경우 Esc키를 눌러 대화상자를 닫을 때도 이 값이 리턴된다.
IDIGNORE
Ignore 버튼을 누를 경우
IDNO
No 버튼을 누를 경우
IDOK
Ok 버튼을 누를 경우
IDRETRY
Retry 버튼을 누를 경우
IDYES
Yes 버튼을 누를 경우
 


출처: http://devlog.cafe24.com/xe/index.php?mid=board_oHhP60&search_target=tag&search_keyword=MessageBox&document_srl=288

2015년 3월 4일 수요일

Unresolved External Symbol CWinApp::writeProfileStringAd

위와 같은 말도 안되는 에러가 발생하였다.

google에 검색을 해봐도 WriteProfileStringAd란 함수는 존재 조차 하지 않는다.

그런 이상한 에러가 발생하여 반나절을 고생한 끝에 ...

오타임을 발견하였다.

 위와 같은 어의없는 실수가 발생한 원인은 바로

 Function명에서 마우스 우클릭 Go to Definiton Of WriteProfileString 으로

점프해서 들어가서 나도 모르게 오타 d 를 추가 해버린것이다.

 기본적으로 제공하는 함수에는 Definition 점프하지 않도록 주의해야 겠다..

2015년 2월 6일 금요일

[MFC] ListCtrl Header Column 개수 얻기

CListCtrl   &ctrlList = GetListCtrl();/*< 동적 리스트 컨트롤 핸들 */
CHeaderCtrl *pHeaderCtrl;       /*< 리스트 컨트롤 헤더 인스턴스의 포인터 */

pHeaderCtrl = ctrlList.GetHeaderCtrl();
nCount = pHeaderCtrl->GetItemCount();
if (-1 == nCount)
{
    AfxMessageBox(_T("Header Column not exist"));
    return;
}
 

출처: http://six605.tistory.com/194

Vㅔ리 굳

[MFC] 리스트 컨트롤 컬럼 헤더 텍스트 얻기

How to find the text column header of a CListCtrl in MFC
CString GetColumnName( CListCtrl * list, int nCol ) 

    CString strNome; 
    CHeaderCtrl* pHdr = list->GetHeaderCtrl(); 
    if ( pHdr ) 
        if ( nCol < pHdr->GetItemCount() ) 
        { 
            HDITEM hdi; 
            hdi.mask = HDI_TEXT; 
            hdi.pszText = strNome.GetBuffer( 256 ); 
            hdi.cchTextMax = 256; 
            pHdr->GetItem( nCol, &hdi ); 
            strNome.ReleaseBuffer(); 
        } 
    return strNome; 
}
출처: http://surpassing.tistory.com/403