Toon posts:

[C++] pointer blijft NULL

Pagina: 1
Acties:
  • 60 views sinds 30-01-2008

Verwijderd

Topicstarter
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  HRESULT hr;
  try
  {
    ITypeLib * pTypeLib;
    ITypeInfo * pTypeInfo;
    IRecordInfo * pRecInfo;
    
    hr = LoadTypeLib(OLESTR("udttest.tlb"), &pTypeLib);
    hr = pTypeLib->GetTypeInfoOfGuid(IID_udttest, &pTypeInfo);
    hr = pTypeLib->GetTypeInfo(0, &pTypeInfo);

    pTypeLib->Release();

    hr = GetRecordInfoFromTypeInfo(pTypeInfo, &pRecInfo);

    pTypeInfo->Release();

    // do some things with pRecInfo here...

    pRecInfo->Release();
  }
  catch (...)
  {
    return hr;
  }


De fout zit hem in de regel:
C++:
1
    hr = LoadTypeLib(OLESTR("udttest.tlb"), &pTypeLib);

&pTypeLib is bekend... (dus een geldige pointer)
MAAR pTypeLib = NULL...

Waarom gebeurd dat? Want udttest.tlb bestaat? Of weet er iemand een link met veel informatie hierover?

  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
pTypeLib is bekend maar niet geinitialiseerd, verwijst naar een ongeldige plek. Zorgt LoadTypeLib voor de initialisatie of moet je het zelf doen, met malloc of zo?

/me weet geen leuke quote voor in zijn signature


Verwijderd

Heb je al geprobeerd om pTypeLib te initialiseren met behulp van bijv. AllocMem(sizeof(ITypeLib)) ?

Verwijderd

Topicstarter
Zal ik even opzoeken. Voor zover ik weet is iTypeLib dit:

C++:
1
2
3
#define MIDL_INTERFACE(x)   struct __declspec(uuid(x)) __declspec(novtable)
    MIDL_INTERFACE("00020402-0000-0000-C000-000000000046")
    ITypeLib : public IUnknown


Dus maw ITypeLib is een struct/class...
Normaal gezien moet loadtypelib (afaik ofc) de informatie uit de tlb halen en die typelib initialiseren...

Op de MSDN site staat dat stukje code dat ik ook gebruikt heb ook op. Dus ik denk niet dat het anders zal moeten. Maar waar zit mijn fout dan wel? 8)7 .

[ Voor 18% gewijzigd door Verwijderd op 21-03-2003 10:29 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

misschien is het handig om eens naar de returnwaarde van die functie te kijken :X
misschien zeg ik nu iets doms hoor, maar ik heb altijd geleerd te controleren op errors


even in de MSDN gekeken, daar staat dat de functie zelf de interface alloceert. Nogal duh!, ten eerste is het een interface, dus je kunt er al geen ruimte voor vrijmaken (aangezien de implementatie meestal groter is dan de interface zelf), en ten tweede was het anders geen pointer naar pointer geweest, maar gewoon een enkele pointer

[ Voor 89% gewijzigd door .oisyn op 21-03-2003 10:45 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

.oisyn schreef op 21 maart 2003 @ 10:42:
misschien is het handig om eens naar de returnwaarde van die functie te kijken :X
misschien zeg ik nu iets doms hoor, maar ik heb altijd geleerd te controleren op errors
Niet altijd, maar op het moment dat er iets onverwacht foutgaat lijkt het me inderdaad aan te raden om voordat je op GoT een topic opent naar die returnwaardes te kijken die 4 keer blind overschreven worden.

Maar idd, ik ben ook dom en naief hoorde ik vanochtend :/

Professionele website nodig?


Verwijderd

Topicstarter
hr = -2147312566 [hex = 80029C4A]

-> Error Loading Type Library/DLL (80029C4A)
( The following error message occurs when the executable cannot find a required library )

Maar!! die tlb bestaat wel degelijk?? Of zoekt die in de verkeerde dir ofzo?


OK, dit is freaky. Ik geef nu het ABSOLUTE path in & nu krijg ik wel degelijk een typelib ... Misschien kan één van jullie mij vertellen hoe|waar die zoekt?

[ Voor 26% gewijzigd door Verwijderd op 21-03-2003 10:53 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

dat is aan jou om uit te zoeken, dit gaat nergens meer over (hint: check de docs van LoadTypeLib ()!!!)
je topic was echt totaal niet nodig geweest als je even die error-code had doorgenomen

have a nice friday :Y)

[ Voor 12% gewijzigd door .oisyn op 21-03-2003 10:56 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.