Problema con puntatore extern

martedì 13 novembre 2012 - 16.30
Tag Elenco Tags  .NET 4.0  |  Windows 7  |  Visual Studio 2010

vimmo Profilo | Newbie

buon giorno a tutti tento di esporre il mio problema:

io importo in un .h del mio progetto una dll esterna
#import "../../../../Apps/Publish/afsdk.dll"
che al suo interno ha dei metodi che devo utilizzare.

uno di questi è:
AFSDK::_ManageConnectionsPtr m_pArxConnection;
che lo instanzio in questo modo
VERIFY(SUCCEEDED(m_pArxConnection.CreateInstance("AFSDK.ManageConnections")));
per usare il suo metodo
m_pArxConnection->GetConnectionString();
ho la necessità di renderlo globale per usarlo in più .cpp

allora in un .h ho definito
extern TB_EXPORT AFSDK::_ManageConnectionsPtr m_pArxConnection;

e in un .cpp la sua inizializzazione
VERIFY(SUCCEEDED(m_pArxConnection.CreateInstance("AFSDK.ManageConnections")));

fin qui tutto ok.

cosa succede però:
eseguo la mia applicazione come prima cosa nel primo .cpp vado a instanziare il metodo della dll e fin qui tutto ok.
quando nel secondo .cpp testo il puntatore tutto ok ha lo stesso valore del primo
quando però sempre nel secondo .cpp lo vado ad usare mi ritrovo con un eccezione di accesso in scrittura...

succede perchè "impegnato" dal metodo che l'ha instanziato?
succede perchè l'area a cui fa riferimento il puntatore nel frattempo ha cambiato contenuto?
non posso riutilizzare il puntatore in altre aree del programma?

non so che pesci pigliare, se qualcuno può aiutarmi gliene sarei infinitamente grato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5