-
Gesamte Inhalte
4.909 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
6
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Guybrush Threepwood
-
-
Danke für den Link Goos aber die einzige für mich brauchbare Lösung die dort gefunden wurde:
int** i;
main()
{
i = (int**)malloc(sizeof(int[10]));
i[10] = (int*)malloc(sizeof(int[20]));
i[1][1] = 5;
printf ("%i",i[1][1]);
return 0;
}
[/PHP]verursacht bei mir immer einen Programmabsturz.
Ansonsten konnte ich im Forum auch nichts finden was mir weiterhilft.
Vielleicht hilft es euch ja mir zu helfen wenn ich sage wofür ich das brauche.
Also, ich will eine Tabelle darstellen die sich der Anzahl der Werte anpasst (d.h. bei 6 Rubriken
und 40 Datensätzen hat die Tabelle 6 Spalten und 40 Zeilen). Hirfür wollte ich
halt ein mehrdimensionales Array des Datentypes [i]HWND[/i] dynamisch anlegen.
Die Alternative von Olli_Master: [i]Eine Klasse, die das Array kapselt und den [] - operator überschreibt. Vielleicht gibt es die schon irgendwo?[/i] hab ich nicht so ganz verstanden vielleicht kann mir das noch jemand erklären.
-
Hi,
man kann ja einen Zeiger deklarieren und ihm zur Laufzeit ein Array zuweisen, also ungefähr so:
int *i;
main()
{
i = new int[29];
}
[/PHP]Ich versuche jetzt aber in der Art ein mehrdimensionales Array anzulegen, also ungefähr so:
[PHP]
int **i;
main()
{
i = new int[19][29];
}Das Problem ist, dass es so nicht funktioniert. Ich habe auch noch ein paar andere Möglichkeiten ausprobiert aber nichts klappt.
Wäre nett wenn mir einer von euch dabei helfen könnte.
Gruß
wasweißich
-
Das mit dem MultiByteToWideChar hat funktioniert.
Vielen Dank Klotzkopp!!
-
Ich hab das mit A2OLE() direkt mal ausprobiert, aber das Problem ist jetzt
das (soweit ich das sehen konnte) A2OLE() in der datei afxpriv.h definiert ist,
ich mag die MFC allerdings nicht besonders und programmiere mit WinApi (hab ich
dummerweise vergessen zu erwähnen ). Wenn ich also afxpriv.h include bekomme ich
den Fehler das ich die windows.h nicht includen darf. Hast du vielleicht noch eine
andere Idee oder ist das Makro noch woanders definiert?
-
Hi,
ich habe eine Variable wSQLString vom Typ LPOLESTR.
Dieser Variable weise ich mit dem Makro OLESTR eine SQL Anweisung zu.
Das Ganze sieht dann so aus:
LPOLESTR wSQLString = OLESTR("SELECT irgendwas FROM irgendwo");
[/PHP]Das funktioniert auch einwandfrei, wenn ich [i]OLESTR[/i] allerdings eine Variable
übergebe, bekomme ich die Fehlermedung [i]"_L nichtdeklarierter Bezeichner"[/i].
Die Definition des Makros sieht folgendermaßen aus:
[PHP]
#if defined(_WIN32) && !defined(OLE2ANSI)
#define OLESTR(str) L##str
#else // 16-bit applications
#define OLESTR(str) str
#endifHat vielleicht einer von euch eine Idee?
Achso ich benutze Win98 und MSVC++6.0
-
Auf beide Fragen ja.
Gruß
wasweißich
-
In den meisten Beispielen wurde pIDBProperties vorher released,
also hab ich das auch mal gemacht. Wenn ich es nicht mache klappts aber auch nicht.
Wo genau kann ich denn sehen ob pIDBInitialize noch gültig ist, wenn ich auf das Debug
Fenster klicke steht da nichts. Kann ich nicht einfach überprüfen ob pIDBInitialize gleich null ist?
-
Hi,
ich versuche ein Programm zu schreiben, welches per oledb datensätze aus einer Accessdatenbank ausliest. Ich benutze Win98, Visual C++ 6.0 und Office 2000.
Mein Problem ist das ich nicht genau weiß welche Properties ich bei der Initialisierung setzen muß. Als Datasource habe ich bisher einfach die Datenbank mit Pfad angegeben(keine Ahnung ob das so geht, da in allen Beispielen "OLE_DB_NWind_Jet" angegeben wird, was aber laut msdn library vordefiniert auf eine Beispiel Datenabnk zeigt). Immer wenn ich das Programm ausführe schlägt die Funktion pIDBInitialize->Initialze() fehl und gibt E_FAIL zurück, was in der msdn nur als "A provider-specific error occurred" erklärt wird. Kann es sein das ich für das Ganze noch irgendetwas installieren muß?
Hier ist einfach mal ein Stück vom Code, vielleicht kann mir ja einer von helfen(BITTE!!!).
HRESULT Initialize()
{
if (CoInitialize(0) != S_OK)
{
MessageBox(hMainWindow,"Konnte COM nicht initialisieren!","Schwerer Ausnahmefehler!",MB_APPLMODAL);
return -1;
}
if (CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER,
IID_IDataInitialize,(void**)&pIDataInit) != S_OK)
{
MessageBox(hMainWindow,"Instanz konnte nicht erstellt werden!","Schwerer Ausnahmefehler!!!",MB_APPLMODAL);
return -1;
}
if (pIDataInit->CreateDBInstance(CLSID_MSDASQL, NULL,CLSCTX_INPROC_SERVER,
NULL, IID_IDBInitialize,(IUnknown**)&pIDBInitialize) != S_OK)
{
MessageBox(hMainWindow,"DB Instanz konnte nicht erstellt werden!","Schwerer Ausnahmefehler!!!",MB_APPLMODAL);
return -1;
}
return 0;
}
/////////////////////////////Ende Initialize////////////////////////////
HRESULT SetProp()
{
const ULONG nProps = 4;
DBPROP InitProperties[nProps];
DBPROPSET rgInitPropSet;
for (int i=0; i<nProps; i++)
{
VariantInit(&InitProperties[i].vValue);
InitProperties[i].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[i].colid = DB_NULLID;
}
InitProperties[0].dwPropertyID = DBPROP_INIT_PROMPT;
InitProperties[0].vValue.vt = VT_I2;
InitProperties[0].vValue.iVal = DBPROMPT_NOPROMPT;
InitProperties[1].dwPropertyID = DBPROP_INIT_DATASOURCE;
InitProperties[1].vValue.vt = VT_BSTR;
InitProperties[1].vValue.bstrVal =
SysAllocString(OLESTR("c:\\online~2.mdb"));
InitProperties[2].dwPropertyID = DBPROP_AUTH_USERID;
InitProperties[2].vValue.vt = VT_BSTR;
InitProperties[2].vValue.bstrVal = SysAllocString(OLESTR(""));
InitProperties[3].dwPropertyID = DBPROP_AUTH_PASSWORD;
InitProperties[3].vValue.vt = VT_BSTR;
InitProperties[3].vValue.bstrVal = SysAllocString(OLESTR(""));
rgInitPropSet.guidPropertySet = DBPROPSET_DBINIT;
rgInitPropSet.cProperties = nProps;
rgInitPropSet.rgProperties = InitProperties;
if (pIDBInitialize->QueryInterface(IID_IDBProperties,
(void**)&pIDBProperties) != S_OK)
{
MessageBox(hMainWindow,"Interface konnte nicht geladen werden!","Schwerer Ausnahmefehler!!!",MB_APPLMODAL);
return -1;
}
if (pIDBProperties->SetProperties(1, &rgInitPropSet) != S_OK)
{
MessageBox(hMainWindow,"Einstellungen konnten nicht gesetzt werden!","Schwerer Ausnahmefehler!!!",MB_APPLMODAL);
return -1;
}
pIDBProperties->Release();
if (pIDBInitialize->Initialize() == E_FAIL) //Hier kommt der Fehler!!!
{
MessageBox(hMainWindow,"Initialisierung fehlgeschlagen!","Schwerer Ausnahmefehler!!!",MB_APPLMODAL);
return -1;
}
return 0;
}
[/PHP]Vielen Dank schonmal im Voraus.
Brauche hilfe bei Mehrdimensionalen dynamischen Arrays
in C und C++
Geschrieben
Hier ist der ganze Code(der dient nur zum Testen):
Beim Ausführen bekomme ich in der Zeile [i]i[1][1] = 5; [/i] eine Access Violation.