我需要爲非託管C++ DLL編寫託管(C#)包裝器的意見。用於DLL的C#包裝器設計P/Invoke
比方說,我有一個這樣的對象:
public class ManagedObject
{
public void DoSomethingWithTheObject()
{
}
}
,並假設DoSomethingWithTheObject()方法,使非託管DLL方法的調用。
現在有浮現在我的腦海兩種可以接受的可能性:
public void DoSomethingWithTheObject()
{
DllWrapperClass.DirectCallToUnmanagedMethod(some_value_type);
}
和
public void DoSomethingWithTheObject()
{
DllWrapperClass.MethodName(this);
}
什麼我基本上問的是,如果
包裝類應僅僅是一個非託管方法的包裝,所有對象直接調用這些方法
包裝類應與對象整齊地集成和隱藏之多,possbile
我傾向於第二種選擇工作的「非託管的方式」,但我想聽取其他意見,因爲這兩種方式各有利弊。
謝謝。我有完全一樣的想法。 – 2010-09-15 22:23:06
1+。爲了您更好的答案。 – Aliostad 2010-09-15 22:41:50