Forum » Programiranje » [VB .NET @ WinCE] P/Invoke nehal delat ;)
[VB .NET @ WinCE] P/Invoke nehal delat ;)
20sdfj093f ::
Pozdravljeni,
težavo imam z Platform Invoke vmesnikom. Vse je delalo lepo in prav, v .NET sem dobil vse funkcije iz unmanaged DLL-a, ki sem jih potreboval, sedaj pa je kar naenkrat zadeva nehala delat. Da pojasnim - funkcijo v .NET-u kličem tako:
Seveda je potrebno zavite oklepaje zamenjat s trikotnimi, saj ST sicer ne pusti vnesti te kode. Kakorkoli, mogoče je krivo kakšno rebuildanje platforme, saj mi sedaj VStudio2k5 čim zalaufam aplikacijo v debuggerju javi, da datoteke driver.dll ne more najti, pa čeprav se na targetu nahaja v isti mapi, kot sama aplikacija.
V čem bi lahko bil hip-hip-hud-trik?
Hvala in LP,
D.
težavo imam z Platform Invoke vmesnikom. Vse je delalo lepo in prav, v .NET sem dobil vse funkcije iz unmanaged DLL-a, ki sem jih potreboval, sedaj pa je kar naenkrat zadeva nehala delat. Da pojasnim - funkcijo v .NET-u kličem tako:
{DllImport("driver.dll", CharSet:=CharSet.Auto, EntryPoint:="Init")} _
Public Overloads Shared Function Init() As Integer
End Function
Seveda je potrebno zavite oklepaje zamenjat s trikotnimi, saj ST sicer ne pusti vnesti te kode. Kakorkoli, mogoče je krivo kakšno rebuildanje platforme, saj mi sedaj VStudio2k5 čim zalaufam aplikacijo v debuggerju javi, da datoteke driver.dll ne more najti, pa čeprav se na targetu nahaja v isti mapi, kot sama aplikacija.
V čem bi lahko bil hip-hip-hud-trik?
Hvala in LP,
D.
20sdfj093f ::
Ne.
Probal sem tudi tako, da ga imam v \Release direktoriju in deklariral na dva nacina:
"..\..\Release\driver.dll" (ker sem dva nivoja nad root direktorijem) ali pa
"\Release\driver.dll" vendar ne najde v nobenem primeru.
Gre za neko čudno napako - če napišem nov DLL s samo eno funkcijo, ki vrne vrednost Ž, ter naredim nov WinCE VB projekt, kjer P/Invoke-am tako, da mi en knof kliče to funkcijo, dejansko skoz dobim vrednost Ž in vmesnik deluje.
Bizarno
Probal sem tudi tako, da ga imam v \Release direktoriju in deklariral na dva nacina:
"..\..\Release\driver.dll" (ker sem dva nivoja nad root direktorijem) ali pa
"\Release\driver.dll" vendar ne najde v nobenem primeru.
Gre za neko čudno napako - če napišem nov DLL s samo eno funkcijo, ki vrne vrednost Ž, ter naredim nov WinCE VB projekt, kjer P/Invoke-am tako, da mi en knof kliče to funkcijo, dejansko skoz dobim vrednost Ž in vmesnik deluje.
Bizarno
20sdfj093f ::
Zadevo sem odpravil. Težava je bila, da je moj DLL klical en drugi DLL, ker pa sem nadgrajeval slednjega z novo verzijo, se mu je spremenilo ime.
Prvotni DLL tako drugega ni našel in .NET aplikacija se je obnašala tako, kot da ni prvega. Bolj v podrobnosti se ne bi spuščal ker jih ne poznam, gre pa za nekaj v tem stilu.
LP, D.
Prvotni DLL tako drugega ni našel in .NET aplikacija se je obnašala tako, kot da ni prvega. Bolj v podrobnosti se ne bi spuščal ker jih ne poznam, gre pa za nekaj v tem stilu.
LP, D.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | KeyloggerOddelek: Programska oprema | 3072 (1799) | Blisk |
| » | kako narediti program ki bere drugi programOddelek: Programiranje | 6269 (4582) | imagodei |
| » | [c#] Vprašanje glede release verzije aplikacijeOddelek: Programiranje | 1707 (1531) | Ericssony |
| » | Dll napisan v C++ importan v C# aplikacijoOddelek: Programiranje | 4335 (4122) | cikopero |
| » | Težave z Club3D Geforce 7600GS AGP in videom - vsaj mislimOddelek: Pomoč in nasveti | 2276 (1838) | denisxt |