Zum Inhalt springen

Guybrush Threepwood

Mitglieder
  • Gesamte Inhalte

    4.909
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    6

Beiträge von Guybrush Threepwood

  1. 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.

  2. 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

  3. 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?

  4. 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

    #endif

    Hat vielleicht einer von euch eine Idee?

    Achso ich benutze Win98 und MSVC++6.0

  5. 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.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...