对于一些可以调用win32 dll的非常古老的工具,我只在c#中编写一些代码。对于大多数功能而言,这完全是无状态的,这根本不是问题,但有些代码需要进行多次调用。
根据架构,这是: C ++ - >托管C - > C#类型库
在非常具体的情况下,呼叫需要是这样的: GenerateObjectInstance();
的AddRecord(...); ... 的AddRecord(...);
ProcessRecords(); FreeInstance();
父应用程序不保留已创建的C ++或C#类的实例。我怎样才能确保在后续调用之间调用同一个实例?使用Mutex并制作单例不是问题,我的问题实际上与GC有关。我怎么能确定GC在下次调用之前不会删除实例对象?
提前谢谢你, 德扬
编辑: 我担心我的问题不够明确。我无法继续引用对象。
旧工具只能调用C方法,这个调用是无状态的。这是C. C方法调用C ++ / CLI。 C ++ / CLI不能将全局变量赋予托管代码(C3145编译错误)
我已经让Singleton进行了测试,但似乎GC正在两次调用之间移除实例。