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 | 2624 (1351) | Blisk |
» | kako narediti program ki bere drugi programOddelek: Programiranje | 5730 (4043) | imagodei |
» | [c#] Vprašanje glede release verzije aplikacijeOddelek: Programiranje | 1477 (1301) | Ericssony |
» | Dll napisan v C++ importan v C# aplikacijoOddelek: Programiranje | 3853 (3640) | cikopero |
» | Težave z Club3D Geforce 7600GS AGP in videom - vsaj mislimOddelek: Pomoč in nasveti | 2055 (1617) | denisxt |