2
외부 DLL에서 정적 devDrv를 만드는 MyObject가 있습니다. devDrv가 MyObject 생성자에 의해 생성 된 경우. 코드가 잘 작동합니다. devDrv가 MyObject.Connect (아래 두 번째 개체 참조) 중 하나에 의해 만들어지면 MyObject.Connect()에 대한 첫 번째 호출이 정상적으로 작동합니다. 두 번째 호출에서이 오류 메시지가 나타납니다. "기본 RCW에서 분리 된 COM 개체를 사용할 수 없습니다." devDrv가 지속되지 않는 것 같습니다. 이 devDrv 개체를 아래의 두 번째 개체에서 볼 수있는 MyObject.Connect에 의해 생성하고 싶습니다. 도와 주셔서 감사합니다.정적 C# 개체가 원인 : 기본 RCW에서 분리 된 COM 개체를 사용할 수 없습니다.
// this code works fine.
public sealed class MyObject
{
static ExtDeviceDriver devDrv;
public MyObject()
{
devDrv = new ExtDeviceDriver();
}
public void Connect()
{
devDrv.connect();
}
}
//this code causes exception.
public sealed class MyObject
{
static ExtDeviceDriver devDrv;
public MyObject()
{
// do not create devDrv here.
//devDrv = new ExtDeviceDriver();
}
public void Connect()
{
if (devDrv == null)
devDrv = new ExtDeviceDriver();
devDrv.connect();
}
}
두 번에 연결할 수 없습니다 수 있습니다 코드에서 스레드를 사용하는 방법을 문서화해야합니다. –