저는 C#을 처음 접했을 때 약간의 C# 코드를 사용하여 Windows 바탕 화면을 개발하는 작은 프로젝트를 완료하려고합니다. 간단한 기계 장치. 기본적으로 RunGadget 메서드를 사용할 수 있도록 IDesktopGadget
인터페이스를 구현하려고합니다. "Cannot create an instance of the abstract class or interface 'GadgetTask.IDesktopGadget'"
이C# : Windows 셸 인터페이스 참조
누군가가 날 지점 수 : 여기
내가 유사한 인터페이스에 대한 정보를 읽는 지금까지 가지고 무엇을 : 나는 시도하고 그것에서 개체를 만들 때 불행하게도[ComImport]
[Guid("C1646BC4-F298-4F91-A204-EB2DD1709D1A")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IDesktopGadget
{
uint RunGadget([MarshalAs(UnmanagedType.LPWStr)] string gadgetPath);
}
을, 오류가 발생합니다 올바른 방향과 어쩌면 내가 뭘 잘못하고 있는지 이해하는 데 도움이 될까요?
감사합니다. Guid를 인터페이스의 클래스 ID로 대체해야합니까? –
"클래스에 등록되지 않은 오류가 발생했습니다"라는 이유가 확실하지 않습니다. 내 레지스트리에서 바로 인터페이스의 클래스 ID를 뽑았습니다. –
아니요, Guid는 인터페이스가 아닌 개체의 CLSID입니다. 그 GUID는 SDK 헤더의 CLSID_DesktopGadget 정의에서 가져 왔습니다. – tyranid