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: 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. Lustigt att de inte vill göra de, hade ju varit så mycket bättre... 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.SPCS API VB.net
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 OskarSv: SPCS API VB.net
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/AdkNetSv:SPCS API VB.net
Fick det iaf att fungera nu, tack för hjälpen.
/mvh OskarSv:SPCS API VB.net
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