Here we are again 
psa = { 38, 0 } (LBound = 0, #elementen = 38)
Maar bij:
loopt het al verkeerd.
Ow ja, de functie is gedefineerd als:
Eventjes zeggen wat ik zie bij de "locals"
Mijn doelstelling:
een persoon geeft in VB een tabel mee:
bvb:
deze webpagina word onderzocht in C++ en daaruit word die tabel opgevuld. De opgevulde tabel word weer naar VB gestuurd voor daar verder verwerkt te worden.
Opmerkingen:
ParseType_t is in zowel VB zowel C++ exact hetzelfde gedefined (en zelfde # bytes etc etc)
parsetype_array (c++) is een vector<ParseType_t>
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| try { SAFEARRAYBOUND psa = { beest_array.size(), 0 }; if (hres = SafeArrayRedim( (*tabel), &psa ) ) throw hres; if (hres = SafeArrayLock ( (*tabel) ) ) throw hres; for (int i = 0; i < beest_array.size(); i++) { ((ParseType_t*)(*tabel)->pvData)[i] = parsetype_array[i]; } // hier is beest_array gevulled :) if (hres = SafeArrayUnlock ( (*tabel) ) ) throw hres; } catch (...) { return 0; } |
psa = { 38, 0 } (LBound = 0, #elementen = 38)
Maar bij:
C++:
1
| if (hres = SafeArrayRedim( (*tabel), &psa ) ) throw hres; |
loopt het al verkeerd.
Ow ja, de functie is gedefineerd als:
C++:
1
2
| #define Function int __declspec(dllexport) CALLBACK Function VulTabelFromWebPage(const String& WebPage, SAFEARRAY **tabel) |
Eventjes zeggen wat ik zie bij de "locals"
code:
1
2
3
4
5
6
7
8
9
10
| *tabel = 0x00000000 +- cDims -> error +- fFeatures -> error +- cbElements -> error +- cLocks -> error +- pvData -> error ++rgsabound = 0x00000010 +[0] +- cElements -> error +- lLbound -> error |
Mijn doelstelling:
een persoon geeft in VB een tabel mee:
bvb:
Visual Basic:
1
2
3
4
5
6
| Dim Att() as ParseType_t If VulTabelFromWebPage( tmpWeb, Att) = 0 Then Msgbox "Foutje!" Else Msgbox "UBound(Att) = " & UBound(Att) End If |
deze webpagina word onderzocht in C++ en daaruit word die tabel opgevuld. De opgevulde tabel word weer naar VB gestuurd voor daar verder verwerkt te worden.
Opmerkingen:
ParseType_t is in zowel VB zowel C++ exact hetzelfde gedefined (en zelfde # bytes etc etc)
parsetype_array (c++) is een vector<ParseType_t>


