나는 C#에서 dll을 작성하여 사용할 클래스를 제공했다. dll은 제가 작성한 C 프로그램에 의해 호출됩니다. (그것은 일부 프로그램의 플러그인입니다. 플러그인 코드를 C로 작성해야하지만, .NET의 기능을 사용하려면 dll을 사용하고 싶습니다.)C# 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에 전화()와 타임 스텝에 나중에 한() oject 점 NULL로 커넥터를 만들 때.
C 코드에서 Timestep()을 호출 할 때 작성한 인스턴스의 Connector에 액세스 할 수 있습니까?
아마도 잘못된 방향으로 검색했을 것입니다. 모든 팁을 부탁드립니다.
C++ 코드를 알려주십시오. 또한, C! = C++. – SLaks
해결되었습니다. 감사합니다 여러분. 감사합니다 SLaks - 내 C/C++ 코드를 통해 당신에게 보여주기 위해 버그를 보여 줬어./나는 충분한 평판 포인트를 수집하지 않았기 때문에 Stackoverflow 내가 대답을 게시하게하지 않습니다. 그러나 그것은 8 시간 만에 나를 가능하게 할 것입니다. 나는 대답을 게시한다. – Teetrinker