SPCS API VB.net
Jag har försökt lite lätt här nu, med att skapa ett API för SPCS, men har stött på ett problem:
Static SPCSerror As AdkNetWrapper.Api.ADKERROR
'Sökväg till SPCS bolag
Dim sys As String = "C:\Documents and Settings\All Users\Application Data\SPCS\SPCS Administration\Gemensamma filer"
Dim ftg As String = "C:\Documents and Settings\All Users\Application Data\SPCS\SPCS Administration\Företag\Ovnbol"
SPCSerror = AdkNetWrapper.Api.AdkOpen(sys, ftg)
If SPCSerror.lRc > 0 Then
MessageBox.Show("False")
Else
MessageBox.Show("True")
End If
AdkNetWrapper.Api.AdkClose()
Detta programmet ska bara öppna en kontakt till SPCS, men jag få följande felmeddelande:
Unable to load DLL 'adk.dll': Det går inte att hitta den angivna modulen. (Exception from HRESULT: 0x8007007E)
Jag har refererar till AdkNetWrapper.dll i Visual studio och det borde väll räcka?
/mvh Oskar
Svara
Sv: SPCS API VB.net
Problemet är att Visma vägrar att lägga till sökvägen till adk.dll i path vid installationen trots att jag påpekat det flera gånger.
Det finns 3 alternativ för 3:e-parts komponenter
- Lägg till sökvägen till SPCS programmapp i "Path" manuellt (rekommenderas men bökigt)
- Installera ditt program i SPCS programmapp
- Kopiera adk.dll till din programmapp
De 2 senare är enklast men skapar problem vid uppdatering av SPCS.
Det här kanske är något för dig www.touchstone.se/AdkNet
Svara
Sv:SPCS API VB.net
Lustigt att de inte vill göra de, hade ju varit så mycket bättre...
Fick det iaf att fungera nu, tack för hjälpen.
/mvh Oskar
Svara
Sv:SPCS API VB.net
Det här blir ett svar på ett väldigt gammalt inlägg, men jag tänkte bara nämna att jag brukar lösa just detta med sökväg till DLL-filer genom att lägga till katalogen där DLL-filen finns till processens lokala PATH-variabel, inte till systemets PATH-variabel. Rent principiellt tycker jag det känns betydligt bättre och det kan också vara anledningen till att Visma/SPCS fortfarande inte automatiskt lägger till katalogen till systemets eller användarprofilens PATH-variabler. Tänk t ex situationen då någon helt annan applikation råkar använda filnamnet adk.dll till en helt annan DLL-fil och fel applikation börjar hitta fel DLL-fil.
I klassen System.Environment finns metoderna GetEnvironmentVariable och SetEnvironmentVariable så det är ganska enkelt att lägga till sökvägen till SPCS-katalogen innan man börjar använda API-klassen.
(Detta kan också vara intressant att veta i andra sammanhang där man använder någon "unmanaged-DLL" i kataloger som inte finns med i PATH-variabeln.)
MVH
Olof Lagerkvist
Svara