비슷한 류의 오류라고 볼 수 있겠군요.
VS.NET 2003에서의 VC++ 프로젝트에서도 자동 생성 코드에서 오류가 있는 경우가 있습니다. 
importlib("stdole2.tlb");
[
uuid(15C8BB20-023C-4FAD-9A72-E3267A27AC33),
helpstring("_ICTestCOMEvents Interface")
]
dispinterface _ICTestCOMEvents
{
properties:
methods:
[id(0x01)] void OnLoad( [in] VARIANT oEvent ); 
};
위의 IDL 파일을 컴파일해서, Connection Point 추가를 하게 되면 다음과 같은 코드가 자동생성됩니다.
if (pConnection)
{
CComVariant avarParams[1];
avarParams[0] = oEvent;    avarParams[0].vt = VT_VARIANT;
DISPPARAMS params = { avarParams, NULL, 1, 0 };
hr = pConnection->Invoke(0x01, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
}
어떤 것이 오류일까요? ^^
avarParams[0].vt = VT_VARIANT;로 한번 더 처리해주는 코드 때문에 오류가 발생합니다.
위의 코드는 마치 oEvent.vt = VT_VARIANT;라고 하는 것과 다를 바가 없지요. 따라서,
oEvent.vt = VT_BSTR;
oEvent.bstrVal = CComBSTR( "TEST" ).Copy();
라고 해서 oEvent 인자로 이벤트를 발생시키는 코드를 다음과 같이 만들게 되면,
CProxy_ICTestCOMEvents::Fire_Event( oEvent );
내부적으로,
avarParams[0] = oEvent;
avarParams[0].vt = VT_VARIANT;
라고 해버리니 오류가 발생할 수밖에 없습니다.
이를 피하기 위해서는 자동 생성된 코드에서 avarParams[0].vt = VT_VARIANT; 코드를 삭제해 주거나 VARIANT 인자형을 쓰지 않는 방법을 고려해 볼 수 있습니다.
VS.NET 2005 정식버전에서는 어떻게 위의 코드가 자동 생성될지 기대가 됩니다. ^^
        
        
                    
                    
                    
                    
                    
    
                    
                    
                    
                    
                    
                
             
        
        
        
| Title | 
| 11901 | 정성태 | 5/21/2019 | 27050 | 오류 유형: 538. msbuild 오류 - Could not find a part of the path '%LOCALAPPDATA%\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.cs' |  | 
| 11900 | 정성태 | 5/18/2019 | 25752 | 오류 유형: 537. "sfc /scannow" 실행 중 시스템이 부팅되는 현상 |  | 
| 11899 | 정성태 | 5/17/2019 | 25713 | Linux: 9. Linux에서 윈도우의 OutputDebugString 대신 사용할 수 있는 syslog [1] |  | 
| 11898 | 정성태 | 5/16/2019 | 27142 | VC++: 130. C++ string의 c_str과 data 함수의 차이점 [3] |  | 
| 11897 | 정성태 | 5/16/2019 | 32709 | 오류 유형: 536. Visual Studio - "Developer Pack"을 설치했는데도 "대상 프레임워크" 목록에 나오지 않는 경우 [2] |  | 
| 11896 | 정성태 | 5/15/2019 | 30498 | 개발 환경 구성: 440. C#, C++ - double의 Infinity, NaN 표현 방식 |  1 | 
| 11895 | 정성태 | 5/12/2019 | 26971 | .NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제 |  1 | 
| 11894 | 정성태 | 5/10/2019 | 29147 | VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5] |  | 
| 11893 | 정성태 | 5/10/2019 | 24587 | 오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면? |  | 
| 11892 | 정성태 | 5/10/2019 | 23757 | 웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231) |  | 
| 11891 | 정성태 | 5/9/2019 | 27863 | .NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles |  | 
| 11890 | 정성태 | 5/8/2019 | 24431 | 개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록 |  | 
| 11889 | 정성태 | 5/8/2019 | 23111 | 개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법 |  | 
| 11888 | 정성태 | 5/8/2019 | 42468 | .NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1] |  1 | 
| 11887 | 정성태 | 5/8/2019 | 28010 | .NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건 |  | 
| 11886 | 정성태 | 5/7/2019 | 24703 | 오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2] |  | 
| 11885 | 정성태 | 5/7/2019 | 22690 | 오류 유형: 533. mstest.exe 실행 시 "File extension specified '.loadtest' is not a valid test extension." 오류 발생 |  | 
| 11884 | 정성태 | 5/5/2019 | 27148 | .NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기 |  | 
| 11883 | 정성태 | 5/3/2019 | 32847 | .NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법 |  1 | 
| 11882 | 정성태 | 5/2/2019 | 29221 | .NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles |  1 | 
| 11881 | 정성태 | 4/28/2019 | 29492 | 오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생 |  | 
| 11880 | 정성태 | 4/25/2019 | 25621 | 오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547 |  | 
| 11879 | 정성태 | 4/24/2019 | 35238 | .NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others |  2 | 
| 11878 | 정성태 | 4/22/2019 | 29256 | .NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff |  1 | 
| 11877 | 정성태 | 4/22/2019 | 30047 | .NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas |  1 | 
| 11876 | 정성태 | 4/21/2019 | 26120 | .NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others |  1 |