0
내 기본 ATL의 COM 프로젝트의 방법에 대해 다음과 IDL 정의가 : 나는에서 내 COM 개체에 대한 참조를 추가 한C#으로 심판 sbyte를 사용하는 방법과 COM 참조를 처리하는 방법을
[id(1)] HRESULT Create([in] CHAR* a, [out] Details* b);
을 내 C# 프로젝트와 그것이 내가 호출 할 필요가 나를 위해이 기능에 대한 스텁을 생성했다가 :
void Create(ref sbyte a, out SampleNativeLib.Details b)
나는 나에게이 기능에 ref sbyte a
매개 변수로 문자열을 사용할 수 있도록하기 위해 라이브러리를 기대했을 것이다.
생성 된 Create
메서드는 어떻게 호출합니까? 문자 대신 ref sbyte a
매개 변수를 받아들이게 할 수있는 대안이 있습니까?
[이] (http://stackoverflow.com/q/2561927/1132334) 당신이 (다른 방향으로 같은)을 시작 할 수 – dlatikay
@dlatikay의 I : 이것은
CHAR
포인터를 문자열로 처리되는 것을 보장한다 여기에서 네이티브에서 네이티브로 이동하려합니다. 다른 말로하면 안됩니다 ... – Alexandru내가 말하고자하는 것은 그것이 다른 방식으로 똑같이 작동한다는 것입니다. ATL 함수를 다시 작성하여 BSTR을 허용하고, C#에서'string'에 매핑됩니다. [다른 관련된 하나] (http://stackoverflow.com/a/13474480/1132334) – dlatikay