Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Exact expert nodig?
Ik moet de volgende API functie aanroepen:
ConnMgrEstablishConnection:
HRESULT WINAPI ConnMgrEstablishConnection(
CONNMGR_CONNECTIONINFO * pConnInfo,
HANDLE * phConnection );
Parameters
pConnInfo
Pointer to the CONNMGR_CONNECTIONINFO data structure; this structure contains the parameters that describe the requested connection.
phConnection
Pointer to a variable of type HANDLE into which the returned connection handle is placed.
De eerste parameter is het probleem: CONNMGR_CONNECTIONINFO. Dit moet een struct zijn die er zo uitziet:
typedef struct _CONNMGR_CONNECTIONINFO {
DWORD cbSize;
DWORD dwParams;
DWORD dwFlags;
DWORD dwPriority;
BOOL bExclusive;
BOOL bDisabled;
GUID guidDestNet;
HWND hWnd;
UINT uMsg;
LPARAM lParam;
ULONG ulMaxCost;
ULONG ulMinRcvBw;
ULONG ulMaxConnLatency;
} CONNMGR_CONNECTIONINFO;
Dit is typisch C code, en ik heb geen idee hoe je zo iets in VB doet.
Een stukje code zoals het in een lezing van Microsoft in C++ gedaan wordt:
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
26
27
28
29
30
31
32
| #define INITGUID
#include <connmgr.h>
CONNMGR_CONNECTIONINFO connInfo;
HANDLE hConnection;
// Fill in the structure with the connection details
memset(&connInfo, 0, sizeof(connInfo));
connInfo.cbSize = sizeof(connInfo);
connInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
connInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
connInfo.dwFlags = 0;
connInfo.bExclusive = false;
connInfo.bDisabled = false;
connInfo.guidDestNet = IID_DestNetInternet;
connInfo.hWnd = hwnd;
connInfo.uMsg = WM_APP_CONNMGR;
connInfo.lParam = (LPARAM)0;
// Make the connection
ConnMgrEstablishConnection(&connInfo, &hConnection);
// In your main window message loop put the following code
// to look for a successful connection.
case WM_APP_CONNMGR:
switch ((WPARAM)wp)
{ case CONNMGR_STATUS_CONNECTED: // We’re connected
break;
}
// Close the connection
ConnMgrReleaseConnection(hConnection, 1); |
Dit wil ik in VB doen..
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
edit:
oeps..niks gevonden.. hee die API call in C++.. welke dll gebruikt die dan van Windows dan volgens jou?
henkleerssen schreef op 07 November 2002 @ 09:41:
www.allapi.net al bekeken .. en de voorbeeld VB codes?
edit:
oeps..niks gevonden.. hee die API call in C++.. welke dll gebruikt die dan van Windows dan volgens jou?
Natuurlijk heb ik daar al gekeken. Ik weet vrijwel zeker dat het nergens op een dmv zoekmachines vindbaar plekje van internet staat.
Het gebruikt een DLL die niet in Win32 beschikbaar is, maar alleen op PocketPC 2002. Het zit in Cellcore.lib.
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
OK, vertaling naar VB:Burat schreef op 07 november 2002 @ 09:28:
Oke, ik ga het proberen.
Ik moet de volgende API functie aanroepen:
[...]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Type CONNMGR_CONNECTIONINFO cbSize As Long dwParams As Long dwFlags As Long dwPriority As Long bExclusive As Long bDisabled As Long guidDestNet As Long ' GUID zou ook wel eens Byte*32 kunnen zijn hWnd As Long uMsg As Long lParam As Long ulMaxCost As Long ulMinRcvBw As Long ulMaxConnLatency As Long End Type Declare Function ConnMgrEstablishConnection Lib "cellcore.dll" _ (ByRef pConnInfo As CONNMGR_CONNECTIONINFO, _ ByRef phConnection As Long) As Long Declare Function ConnMgrReleaseConnection Lib "cellcore.dll" _ (ByVal hConnection As Long, _ ByVal dwFlags As Long) As Long |
In plaats van ByRef pConnInfo As CONNMGR_CONNECTIONINFO zou je ook ByVal pConnInfo As Long kunnen gebruiken, maar dan moet je bij het aanroepen van de functie wel zelf het adres van de variabele meegeven (met VarPtr). Over het datatype van een GUID ben ik niet helemaal zeker; ik dacht dat een GUID 32 bytes in beslag nam, dus misschien moet je dat declareren als guidDestNet As Byte * 32...
En het andere stukje code, om te verbinden:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Dim connInfo As CONNMGR_CONNECTIONINFO Dim hConnection As Long ' Fill in the structure with the connection details connInfo.cbSize = Len(connInfo) ' de volgende constanten moet je ff opzoeken... connInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET connInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE connInfo.dwFlags = 0 connInfo.bExclusive = 0 connInfo.bDisabled = 0 connInfo.guidDestNet = IID_DestNetInternet connInfo.hWnd = frmMain.hWnd connInfo.uMsg = WM_APP_CONNMGR connInfo.lParam = 0 ' Make the connection ConnMgrEstablishConnection connInfo, hConnection |
Als je ByVal pConnInfo As Long had gebruikt, dan zou de aanroep als volgt zijn: ConnMgrEstablishConnection VarPtr(connInfo), hConnection
Verder staat er, dat de connection manager messages stuurt naar een door jou opgegeven window (in bovenstaand geval frmMain). VB verwerkt deze messages niet voor je; daarom zal je het window moeten subclassen en de WM_APP_CONNMGR message zelf afvangen en verwerken. Maar misschien werkt het ook wel zonder dit stukje subclassing (waarschijnlijk zijn het notification messages die je informeren over een verandering in de status van de connectie).
Het opheffen doe je als volgt:
1
2
| ' Close the connection ConnMgrReleaseConnection hConnection, 1 |
HTH
[ Voor 0% gewijzigd door johnwoo op 07-11-2002 10:19 . Reden: cellcore dus :) ]
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| '------------------------------------------------------------ ' VB reference... '------------------------------------------------------------ Public Declare Sub Conection Lib "jouw.dll" (ByVal ByteLen As Long, en wat dies meer zij) '------------------------------------------------------------ ' Struct declaratie in vb dus met type... '------------------------------------------------------------ Public Type Connection_Struct_ALA_C Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte 'en wat nog meer nodig is... End Type |
Is maar een idee.. ik weet eigenlijk ook niet precies hoe ik het verder zou aanpakken.. ben wel benieuwd of het gaat lukken..
Kijk eens aan.. Johnwoo.. was me voor...
DWORD in C: doubleword, 2x16 bits = 32 bits. Long in VB: 32 bits. Dat pasthenkleerssen schreef op 07 november 2002 @ 10:10:
is dword datatype.. een long zoals in vb Johnwoo? ooh...
Er is wel verschil tussen, namelijk dat een DWORD unsigned is en een VB Long signed, maar dat maakt voor de meeste API's (waarbij vlaggetjes in DWORDs worden gestopt, en de vlaggetjes in Hex worden gespecificeerd) niet uit. Pas als je waarden groter dan of gelijk aan 2^16 erin wil stoppen moet je op gaan letten
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Wat trouwens bij mij weleens heeft geholpen als ik de exacte VB declaratie niet kon vinden, is naast de bijbel van Dan Appleman, andere functies waarvan je wel de VB declaratie hebt, vergelijken met de C versie.
Exact expert nodig?
API's zijn best makkelijk te vertalen hoor. Enkele vuistregels:Crazy_D schreef op 07 november 2002 @ 10:18:
[...]
Wat trouwens bij mij weleens heeft geholpen als ik de exacte VB declaratie niet kon vinden, is naast de bijbel van Dan Appleman, andere functies waarvan je wel de VB declaratie hebt, vergelijken met de C versie.
- Zet in je declaratie altijd expliciet ByRef of ByVal, zodat je weet of het adres (ByRef, default) of de waarde (ByVal) van je variabele wordt doorgegeven. Alleen bij ByVal kun je ook een constante opgeven in de aanroep.
- Pointers (als er in de C declaratie een & of * voor staat) zijn altijd Longs in VB. Je kunt ze op 2 manieren doorgeven: ByVal As Long, en dan zelf het adres van je variabele doorgeven (VarPtr), of ByRef As [whatever het type is], zodat VB het adres zal doorgeven. ByRef As Any is ook een optie.
- BOOL, DWORD, UINT en vrijwel alle andere integer types zijn Longs. Handles ook (de naam van een handle begint meestal met een h, bijvoorbeeld hConnection in de vraag van topicstarter).
- Voor grotere waarden kun je een Double of Currency (8 bytes, __int64 of long long in C) gebruiken, maar je kunt dan niet zelf met de waarde gaan rekenen.
- Voor nog grotere waarden (die gaan altijd als pointer) kun je een eigen Type maken dat groot genoeg is. Voor 64 bits getallen wordt meestal een LARGE_INTEGER gebruikt in VB:
1
2
3
4
| Type LARGE_INTEGER LowPart As Long HighPart As Long End Type |
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Handy!johnwoo schreef op 07 november 2002 @ 10:29:
[...]
API's zijn best makkelijk te vertalen hoor. Enkele vuistregels:
- Zet in je declaratie altijd expliciet ByRef of ByVal, zodat je weet of het adres (ByRef, default) of de waarde (ByVal) van je variabele wordt doorgegeven. Alleen bij ByVal kun je ook een constante opgeven in de aanroep.
- Pointers (als er in de C declaratie een & voor staat) zijn altijd Longs in VB. Je kunt ze op 2 manieren doorgeven: ByVal As Long, en dan zelf het adres van je variabele doorgeven (VarPtr), of ByRef As [whatever het type is], zodat VB het adres zal doorgeven.
- BOOL, DWORD, UINT en vrijwel alle andere integer types zijn Longs.
- Voor grotere waarden kun je een Double (8 bytes, __int64 /of long long in C) gebruiken, maar je kunt dan niet zelf met de waarde gaan rekenen.
- Voor nog grotere waarden (die gaan altijd als pointer) kun je een eigen Type maken dat groot genoeg is. Voor 64 bits getallen wordt meestal een LARGE_INTEGER gebruikt in VB:
Type LARGE_INTEGER
LowPart As Long
HighPart As Long
End Type
Dank!
Ik heb de constants opgezocht in de header files en gedefinieerd. De code is op de juiste plekken geplakt.
Ik ben er alleen nog niet
1
2
3
| Declare Function ConnMgrEstablishConnection Lib "cellcore.dll" _ (ByRef pConnInfo As CONNMGR_CONNECTIONINFO, _ ByRef phConnection As Long) As Long |
[EDIT]
Dit kan dus worden opgelost door "ByVal pConnInfo As Long" te gebruiken...
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Probeer hem dan eens As Any:Burat schreef op 07 november 2002 @ 10:39:
[...]
![]()
![]()
Dank!
Ik heb de constants opgezocht in de header files en gedefinieerd. De code is op de juiste plekken geplakt.
Ik ben er alleen nog niet. Windows CE / PocketPC heeft zo z'n eigen regels lijkt het. Embedded Visual Basic geeft de volgende foutmelding: "Currency, Data, Double, Object, Single and User-defined types are not supported in Declare statements for Windows CE". De cursor staat dan bij de tweede regel uit dit fragment:
Visual Basic:
1 2 3 Declare Function ConnMgrEstablishConnection Lib "cellcore.dll" _ (ByRef pConnInfo As CONNMGR_CONNECTIONINFO, _ ByRef phConnection As Long) As Long
1
2
3
| Declare Function ConnMgrEstablishConnection Lib "cellcore.dll" _ (ByRef pConnInfo As Any, _ ByRef phConnection As Long) As Long |
Ik geloof dat je bij gebruik van As Any in de aanroep nog een ByVal moest zetten, maar dat weet ik niet meer zeker:
1
| ConnMgrEstablishConnection ByVal connInfo, hConnection |
Kan dus zijn dat die ByVal daar niet moet staan... zal ik strax nog ff uitzoeken, als ik tijd kan vinden
Als dit nog niet werkt zou je de pointer ook As Long kunnen doorgeven, en zelf het adres van je variabele meegeven dmv VarPtr. Staat ook al in mijn eerste post
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
De code geeft geen errors, op 1 ding na: de Type definition (Type CONNMGR_CONNECTIONINFO ... End Type). Ik heb 'm helemaal boven in m'n VB Source gezet, precies zoals in jouw voorbeeld bij de Declare statements. Maar VB geeft bij runnen de volgende error: "Compile Error: Expected Statement".
Is ik nu dom?
Voor de duidelijkheid: ik heb nu een nieuwe module toegevoegd waar enkel het volgende instaat:
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
| ' Type Definitions Type CONNMGR_CONNECTIONINFO cbSize As Long dwParams As Long dwFlags As Long dwPriority As Long bExclusive As Long bDisabled As Long guidDestNet As Long ' GUID zou ook wel eens Byte(32) kunnen zijn hWnd As Long uMsg As Long lParam As Long ulMaxCost As Long ulMinRcvBw As Long ulMaxConnLatency As Long End Type ' Constants Const CONNMGR_PARAM_GUIDDESTNET = &H1 Const CONNMGR_PRIORITY_USERINTERACTIVE = &H8000 Const WM_APP_CONNMGR = 0 ' Function Declarations Public Declare Function ConnMgrEstablishConnection Lib "cellcore" (ByVal pConnInfo As Long, ByRef phConnection As Long) As Long Public Declare Function ConnMgrReleaseConnection Lib "cellcore" (ByVal hConnection As Long, ByVal dwFlags As Long) As Long |
Hij geeft dus "Compile Error: Expected Statement" op regel 2.
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Met andere woorden: pretty fucked up.
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
henkleerssen schreef op 07 november 2002 @ 11:17:
embedded visual basic ..... mm wordt lastig verhaal nu ja.. als je alleen maar string kunt gebruiken... Kun je dan je byval de variabelen niet "parsen" van VB naar een eigengemaakte dll (in C++ geschreven) misschien?
Hehehe, sja.. zo thuis in C++ enzo ben ik niet. Ik kan in elk geval niet zelf DLL's schrijven enzo.. Ik ga maar eens kijken naar die String oplossing..
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Optellen van de grootte in bytes van alle members van CONNMGR_CONNECTIONINFO leert ons dat de struct 52 (of 80, indien de GUID 32 bytes in bslag neemt; daar ben ik nog niet uit) bytes lang is. De workaround wordt dan:
1
2
3
4
5
6
7
8
9
10
11
| ' Constants Const CONNMGR_PARAM_GUIDDESTNET = &H1 Const CONNMGR_PRIORITY_USERINTERACTIVE = &H8000 Const WM_APP_CONNMGR = 0 Const CONNINFO_SIZE = 52 ' Function Declarations Public Declare Function ConnMgrEstablishConnection Lib "cellcore" _ (ByRef pConnInfo As String, ByRef phConnection As Long) As Long Public Declare Function ConnMgrReleaseConnection Lib "cellcore" _ (ByVal hConnection As Long, ByVal dwFlags As Long) As Long |
Nu moeten we een manier hebben om de bitjes die de verschillende waarden vormen, op de juiste plaats in de string buffer te krijgen. Hiervoor heb ik eens een functie gemaakt:
1
2
3
4
5
6
7
8
9
10
11
| ' Declaration: Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (ByRef pDst As Any, _ ByRef pSrc As Any, _ ByVal ByteLen As Long) Public Function LongToBinary(ByVal Number As Long) As String Dim buf As String * 4 CopyMemory ByVal buf, Number, 4 LongToBinary = buf End Function |
Hiermee kun je de members van de (denkbeeldige) struct invullen. cbSize is de eerste member, deze kan als volgt gevuld worden:
1
2
| Dim connInfo As String * CONNINFO_SIZE Mid$(connInfo, 1, 4) = LongToBinary(CONNINFO_SIZE) |
De 1, 4 geeft aan dat 4 bytes vervangen moeten worden, te beginnen bij byte 1. De tweede member is dus Mid$(connInfo, 5, 4) , enzovoort.
[edit] Ik hoop alleen wel dat het PocketPC platform de RtlMoveMemory functie biedt
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Inderdaad... ik maak wel een wrapper DLL... Zo gebeurdhenkleerssen schreef op 07 november 2002 @ 11:43:
wordt wel heel kunstmatig in VB... vind je niet? Maar goed.. misschien gaat het wel werken..
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Over behulpzaam gesproken... nou nou...johnwoo schreef op 07 november 2002 @ 11:48:
[...]
Inderdaad... ik maak wel een wrapper DLL... Zo gebeurd
* johnwoo heeft niks te doen
Trouwens, hij zal het nog steeds zelf moeten compilen aangezien deze functies PPC-specific zijn
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
johnwoo schreef op 07 November 2002 @ 11:36:
Het kan nog wel hoor, het is alleen wat lastiger
Optellen van de grootte in bytes van alle members van CONNMGR_CONNECTIONINFO leert ons dat de struct 52 (of 80, indien de GUID 32 bytes in bslag neemt; daar ben ik nog niet uit) bytes lang is. De workaround wordt dan:
[knip]
Hiermee kun je de members van de (denkbeeldige) struct invullen. cbSize is de eerste member, deze kan als volgt gevuld worden:
Visual Basic .NET:
1 2 Dim connInfo As String * CONNINFO_SIZE Mid$(connInfo, 1, 4) = LongToBinary(CONNINFO_SIZE)
De 1, 4 geeft aan dat 4 bytes vervangen moeten worden, te beginnen bij byte 1. De tweede member is dus Mid$(connInfo, 5, 4) , enzovoort.
[edit] Ik hoop alleen wel dat het PocketPC platform de RtlMoveMemory functie biedtMoet haast wel, zo'n belangrijke low-level functie mag niet ontbreken
Anders zou je eventueel nog zelf een LongToBinary kunnen maken die met Chr$ en wat rekenwerk zelf de string samenstelt
Hierover heb ik nog geen klachten gehad van de compiler, misschien is dit een van de weinige dingen die wel werken
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
johnwoo schreef op 07 november 2002 @ 11:48:
[...]
Inderdaad... ik maak wel een wrapper DLL... Zo gebeurd
Dat zou echt helemaal
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
.. johwoo..is het probleem met winbar opgelost met meer dan 50 dagen uptime zijn van een winpc? (data declaratie probleem bij versie huppeldepup) .. btw kreeg een bug van iets van overflow... bij 2*50 dagen... daarna ging die rustig weer opnieuw tellen...
1
| Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pDst As Any, ByRef pSrc As Any, ByVal ByteLen As Long) |
Error: "The Declare statement is incorrectly formatted. Please see the documentation for more information on the format of a Declare statement."
In de documentatie staat dit:
Wel, daar voldoet het aan, dus wat zeikt het nou weer??[Public] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
[edit]
Aha! De foutmeldingen zijn gewoon onduidelijk:
Fijnzo..Declaring a variable using the As Any data type is unsupported
[edit 2]
Laatste nieuws!!
Op PocketPC 2002 is kernel32 dus niet beschikbaar. Ik weet niet of RtlMoveMemory ergens anders inzit.. ff zoeken
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Projectje: klik
[edit] Als er een SDK is om in VS6 voor PPC te ontwikkelen, dan zou ik het natuurlijk wel kunnen compilen
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Ik gebruik nog steeds GetTickCount om de uptime in milliseconden op te vragen, dus 49,nogwat dagen is nog steeds het maximum. Ik weet dat er andere manieren zijn om de uptime te bepalen, maar het moet wel op alle Win32 platforms draaien (en dat doen de alternatieven voor GetTickCount niet).henkleerssen schreef op 07 november 2002 @ 11:59:
ffofftopic:
.. johwoo..is het probleem met winbar opgelost met meer dan 50 dagen uptime zijn van een winpc? (data declaratie probleem bij versie huppeldepup) .. btw kreeg een bug van iets van overflow... bij 2*50 dagen... daarna ging die rustig weer opnieuw tellen...
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
dus dat winbar uptime probleem blijf je houden ook als je gewoon je eigen aangevoerde codejohnwoo schreef op 07 november 2002 @ 12:33:
[...]
Ik gebruik nog steeds GetTickCount om de uptime in milliseconden op te vragen, dus 49,nogwat dagen is nog steeds het maximum. Ik weet dat er andere manieren zijn om de uptime te bepalen, maar het moet wel op alle Win32 platforms draaien (en dat doen de alternatieven voor GetTickCount niet).
1
2
3
4
| Type LARGE_INTEGER LowPart As Long HighPart As Long End Type |
gebruikt om gettickcount in te zetten?
Ik kon deze bug btw niet zo snel vinden in je bug list (is ook niet severe of zo)..
Maar dat allemaal ff terzijde..
GetTickCount heeft geen argumenten, maar geeft gewoon een 32-bits getal terug. En al zou de waarde via een parameter worden doorgegeven, de functie zou dan nog steeds alleen de eerste 32 bits vullen als ik hem een LARGE_INTEGER mee zou gevenhenkleerssen schreef op 07 november 2002 @ 13:13:
[...]
dus dat winbar uptime probleem blijf je houden ook als je gewoon je eigen aangevoerde codecode:
1 2 3 4 Type LARGE_INTEGER LowPart As Long HighPart As Long End Type
gebruikt om gettickcount in te zetten?
Ik kon deze bug btw niet zo snel vinden in je bug list (is ook niet severe of zo)..
Maar dat allemaal ff terzijde..
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
johnwoo schreef op 07 november 2002 @ 12:28:
Okee, ik heb een Visual Studio 6 DLL project gemaakt dat die ConnMgrEstablishConnection zo wrapt dat je alleen nog maar wat Longs mee hoeft te geven. Aangezien ik geen PocketPC heb (I'd wish...) en op Win32 de connmgr.h, cellcore.lib en cellcore.dll niet beschikbaar zijn, kan ik het niet voor je compilen. Dat zul je zelf moeten doen. Ik weet niet hoe je ontwikkelt voor PocketPC, als dat niet kan in Visual Studio dan zul je de .c en .h file op een andere manier om moeten zetten in een .dll
Projectje: klik
[edit] Als er een SDK is om in VS6 voor PPC te ontwikkelen, dan zou ik het natuurlijk wel kunnen compilen
Wow! Dank u!
Ik ben nu bezig met het aan de gang te krijgen. De ontwikkelomgeving is trouwens "MS Embedded Visual C++" en "MS Embedded Visual Basic". Die zitten in Microsoft Embedded Visual Tools 3. Voor de PocketPC heb je dan de PocketPC 2002 SDK nog nodig. Om te ontwikkelen en testen heb je dus geen PDA nodig, er zit een perfecte emulator bij
Maar ik ga eens kijken wat ik ermee kan. Op dit moment is Visual C++ aan het huilen dat er 102 errors in connmgr.h zitten ("C:\Program Files\Embedded Visual Tools 3\wce300\Pocket PC 2002\include\connmgr.h(12) : error C2059: syntax error : ','").. Fijn
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
http://www.devbuzz.com/
Wel 1 van betere die ik gezien heb.
Compiling...
connmgr_wrapper.c
Linking...
connmgr_wrapper.obj : error LNK2019: unresolved external symbol _ConnMgrEstablishConnection referenced in function _MakeConnection
connmgr_wrapper.obj : error LNK2001: unresolved external symbol _IID_DestNetInternet
connmgr_wrapper.obj : error LNK2019: unresolved external symbol _ConnMgrReleaseConnection referenced in function _CloseConnection
corelibc.lib(pegwmain.obj) : error LNK2019: unresolved external symbol _WinMain referenced in function _WinMainCRTStartup
X86Dbg/connmgr_wrapper.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.
connmgr_wrapper.exe - 5 error(s), 0 warning(s)
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP
Ik zal die tools zo even installeren, kijken of ik het gecompiled krijg
Hmm, 300+ MB
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Projectje: klik
(De DLL zit er ook al bij, voor x86 en ARM, dus je hoeft waarschijnlijk niet meer te compilen
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1