我用 C# 编写了一个 dll,提供了一个类供使用。该 dll 由我编写的 C 程序调用。(它是某个程序的插件。我必须用 C 编写插件的代码,但我想使用 .NET 的功能,因此是 dll)。
在 dll 中,我想打开一个流并做其他应该在两次调用 dll 之间持久的东西。这在下面的代码中由私有成员连接器表示。
namespace myCSharpDll
{
// the c++ program calls this methods
public interface IAccess
{
double Initialize();
double Timestep(double time, double[] values);
...
}
// E is the beginning of another program my dll should connect to, therefore the names
public class EAccess : IAccess
{
// EConnector is another class I defined in the same dll
private EConnector Connector;
public double InitializeE()
{
Connector = new EPConnector();
}
public double Timestep(double time, double[] values)
{
return Connector.Connect();
}
当我调用 InitializeE() 并随后调用 Timestep() 时,连接器对象指向 NULL。
当我从 C 代码中调用 Timestep() 时,我必须做什么才能访问之前创建的连接器实例?
我可能根本就朝错误的方向搜索。任何提示表示赞赏。