我有一些C代码:
namespace Compute { class __declspec(dllexport) IProgressCB { public: virtual void progress(int percentCompleted) = 0; }; double __declspec(dllexport) compute(IProgressCB *progressCB,...); }
从中创建了“compute.dll”,在Visual Studio 2008中打开了“公共语言运行时支持(/ clr)”.
接下来,我创建一个C#控制台应用程序并添加compute.dll作为参考.
然后我尝试子类化/实现IProgressCB:
public class Progress : Compute.IProgressCB { public void progress(int percentCompleted) { Console.WriteLine(percentCompleted + "% completed."); } }
然而,VS的自动完成找到了“Compute”命名空间,但没有查找其中的任何类或函数!?
当我尝试编译;它抱怨IProgressCB不公开.
如果我在IProgressCB声明之前公开,它会抱怨无法从密封类型’Compute.IProgressCB’派生出来.