분류 전체보기 (199)
ººº::Development™:: (66)
ººº::Learning™:: (31)
ººº::Information™:: (37)
ººº::Note™:: (11)
ººº::Photo™:: (50)
ººº::zEtc™:: (3)
rss

믹시
tistory 티스토리 가입하기!
'VC2005'에 해당되는 글 2건
2008. 4. 16. 23:59
아래 글에 이어서 이 warning은 VS2005를 사용해서 XSI v6.0의 com api dll을 다시 컴파일 할 때 나타나는 warning이란다.!
( Recompiling COM API dll for XSI v.6.0 using Visual Studio .NET 2005 )
영문을 그냥 직역하다 보니 이해가 좀 안되지만???
머 우짜든 나는 에러는 다음과 유사하다
warning C4278: 'GetObject': identifier of typelibrary 'XXXX.tlb' is already macro. Please use 'rename' modifier.

warning C4278: 'GetObject': 형식 라이브러리 'XXXX.tlb'의 식별자가 이미 매크로입니다. 'rename' 한정자를 사용하십시오

위에서 GetObject는 warning이 나는곳마다 다 틀리다 왜냐 라이브러리마다 모두 다 틀리기 때문에 우짜든 형태는 위와 유사하고 warning이 발생한 곳은

XXXX.tbl를 import한 곳이다.
영문 그래로 rename 한정자를 사용해 다음과 같이 수정해 주면 된다.

#import <XXXX.tlb> rename( "GetObject", "GetObjectA" )

GetObject는 warning난 매세지에 나타난 이름을 그대로 사용하면 되고 두번째 파라미터는 아무렇게나 원하는 이름으로 재명명 해주면 된다.

일단 warning은 잡자!!!


2008. 4. 16. 23:28

이번 프로젝트에 사용할 ActiveX 컨트롤러를 만드는 중에 VC6로 작성된 것을 VS2005로 컴파일 할라고 하는디!
이게 어찌된 일인지 컴파일 하면 이것저것 마춰야 하는게 왜 그리 만은지!!

이왕 정리하기로 맘먹은거 하나하나 해결하면서 정리해 보자.

1. For문의 지역 변수 스코프

for( int i = 0; i < 5; i++ )
{
}
for( i = 0; i < 10; i++ ) {}
VS6에서는 위와같이 작성해두 된다고 한다. 이유는 모르지만( 역시 난 C와 C++은 쥐약이야ㅠㅠ)
머 일단 문제가 발생하고나서는 당연지사 스코프 문제로 아래쪽 for문에서 i를 int형 혹은 해당하는 형으로 선언해주니 문제 해결

2. warning C4996
이넘의 워닝! 아주 죽을 맞이다.! 어찌하면 안날까? ActiveX자체두 잘 모르는디! ㅡㅡ;
일단 나타나는 워닝을 인터넷을 찾아댕기면서 하나한 해결해 보자! 이럴 시간두 없는디!ㅡㅡ;
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
VS2005에서 부터는 CRT라이브러리 함수의 문자열을 다루는 함수의 안정성에 많은 신경을 쓰면서 기존의 문자열 함수에 _s를 붙여서 버퍼의 길이를 지정하도록 권장하고 있기 때문에 strcpy같은 문자열 함수에서 위와 같은 warning이 발생한다.

위와 같은 warning이 나타날 경우에는 stdafx.h 파일 상단에 아래와 같이 정의해 주면 된단다.
#define _CRT_SECURE_NO_WARNINGS
혹은
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAES 1
혹은
#define _CRT_SECURE_NO_DEPRECATE
위의 정의가 뜻하는 바는 시간이 없어서 패스.

다음으로
warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
위와 같은 warning이 날 경우에는 stdafx.h 파일 상단에
#define _CRT_NONSTDC_NO_DEPRECATE
위와 같이 정의해 주면 된단다.!!

일단 지금까지 나온 warning을 바탕으로 해결된 내용..
난중에 추가적인 내용이 나오면 다시 붙여보장!!

'ººº::Development™:: > ::C/C++™::' 카테고리의 다른 글

[툴] Windows Crash Dump 분석  (0) 2009.04.10
[C/C++] 디렉토리 만들기..  (1) 2008.12.04
[C/C++] 오늘 날짜 구하기  (1) 2008.12.03
[C/C++] apache xercex-c 사용하기  (0) 2008.11.06
[C/C++] warning C4278  (0) 2008.04.16


prev"" #1 next