error MIDL2311 - mktyplib compatability mode 컴파일 오류
예전 Visual Studio로 만들어진 OCX 소스코드를 2013에서 빌드하니 다음과 같이 오류가 발생하는 군요.
error MIDL2311: statements outside library block are illegal in mktyplib compatability mode : [ ]
검색하니 다음의 글이 나옵니다.
MIDL2311 error in Visual Studio 12
; http://social.msdn.microsoft.com/Forums/vstudio/en-US/8ab816ab-c246-404a-82df-f858749488bb/midl2311-error-in-visual-studio-12?forum=visualstudiogeneral
#include 헤더 구문이 odl 파일에서 library 바깥에 있는 경우 오류가 난다는 군요. ^^ 즉, 아래와 같이 되어 있는 것을,
#include <olectl.h>
#include <idispids.h>
[ uuid(DB6A5440-5EC9-49C3-8E9A-66507B424DBE), version(1.0),
helpfile("Test.hlp"), helpstring("Test ActiveX Control module"), control ]
library TESTOCXLib
{
// ...[생략]...
}
이렇게 library안으로 정의를 넣어주면 됩니다.
[ uuid(DB6A5440-5EC9-49C3-8E9A-66507B424DBE), version(1.0),
helpfile("Test.hlp"), helpstring("Test ActiveX Control module"), control ]
library TESTOCXLib
{
#include <olectl.h>
#include <idispids.h>
// ...[생략]...
}
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]