?
Das habe ich jetzt soweit gemacht, trotzdem wird das Objekt nicht richtig übergeben und das Programm bricht ab, sobald ich in der erzeugten Klasse mit dem übergebenen Objekt arbeiten möchte. Mit der Debuger-Funtion konnte ich herausfinden, dass verscheidene Speicheradressen an das Objekt übergeben werden, zuerst wird eine richtige übergeben, dann später erscheint da eine völlig falsche Speicheradresse...vielleicht kann ich das anhand von Stückchen Code etwas deutlicher machen...
der Aufruf des Dialogfensters aus der ersten Klasse
void CUserDlg::OnMatchUser()
{
CUserMatch mDlg = new CUserMatch(*users, this);
mDlg.DoModal();
}
...dann übergibt der Konstruktor des erzeugten Objektes die Variable von Typ SAFEARRAY an die "klasseninterne" Variable
CUserMatch::CUserMatch(SAFEARRAY mUsers, CWnd* pParent)
: CDialog(CUserMatch::IDD, pParent)
{
//{{AFX_DATA_INIT(CUserMatch)
m_MFilePath = _T("");
users = &mUsers;
//}}AFX_DATA_INIT
}
...als nächstes versuche ich in der erstellten Klasse nach einem Button-Druck auf das übergebene Objekt zuzugreifen und da bricht er ab...
void CUserMatch::OnMatch()
{
/*Get all users.
avobjUsers = RpTransaction.GetObjectsOfType("Principal");
users = avobjUsers.parray;
*/
//Check the Dimension of the Array
if ( SafeArrayGetDim(users) != 1 )//hier erfolgt der Abbruch
AfxMessageBox(E_INVALIDARG);
...
...
...
Die Fehlermeldung heisst dann in etwa: Die Anweisung in ".........." verweist auf den Speicher"......". Der Vorgang "read" konnte nicht ausgeführt werden.
Was könnte da der Fehler sein? Kann mir bitte eienr helfen?