From 2028b0a6513c59428e6a80354a77928f443812e4 Mon Sep 17 00:00:00 2001 From: EJClaw Date: Sat, 26 Sep 2026 00:38:56 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8?= =?UTF-8?q?=EB=B3=84=20=EC=BA=A1=EC=B2=98=20=EB=8F=84=EC=9A=B0=EB=AF=B8?= =?UTF-8?q?=EA=B0=80=20=EC=95=A0=EC=B4=88=EC=97=90=20=EC=BB=B4=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit native\process_loopback\main.cpp 이 MSVC 에서 C2275 로 죽는다. WRL 의 FtmBase 는 플래그가 아니라 섞어 넣는 클래스인데 RuntimeClassFlags 안에 `ClassicCom | FtmBase` 로 넣어 타입을 값 자리에 썼다. 인터페이스 목록 쪽으로 옮긴다 (ApplicationLoopback 샘플과 같은 형태). 이 코드는 지금까지 한 번도 빌드된 적이 없다. 리눅스에서는 컴파일할 방법이 없었고, CI 의 네이티브 빌드 단계는 continue-on-error 였다. win-ci VM 에 MSVC 를 깔고 나서야 드러났다. --- native/process_loopback/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/native/process_loopback/main.cpp b/native/process_loopback/main.cpp index 30c2758..57932f0 100644 --- a/native/process_loopback/main.cpp +++ b/native/process_loopback/main.cpp @@ -49,8 +49,13 @@ BOOL WINAPI ConsoleHandler(DWORD type) { } // ActivateAudioInterfaceAsync 완료 콜백. 결과를 이벤트로 넘겨준다. +// +// FtmBase 는 플래그가 아니라 섞어 넣는 클래스다. RuntimeClassFlags 안에 +// `ClassicCom | FtmBase` 로 넣으면 MSVC 가 C2275 로 거부한다(타입을 값 자리에 +// 썼으므로). 인터페이스 목록 쪽에 나열해야 한다 — ApplicationLoopback 샘플과 +// 같은 형태다. class ActivationHandler - : public RuntimeClass, + : public RuntimeClass, FtmBase, IActivateAudioInterfaceCompletionHandler> { public: explicit ActivationHandler(HANDLE done) : done_(done) {}