Programmerar i vb.net 2005 och vill göra ett program som jobbar som en tjänst. Det är ett interface för att skicka meddelanden till en kund utrustning. Vem har skapat OCX'n vad är det för utrustning? Det är en larmutrustning och ocxen har tillverkats för kommunikation med externa program. Har du dokumentation till DLL'n? Funktionerna befinieras i dokumentationen så här Tyvärr är inte jag så bekant med C-dll'er. För att en funktion i en C-dll skall kunna anropas krävs att man standard calling convention (__stdcall) detta är vad VB förväntar sig. Hur använda ocx i en tjänst
Men hur gör jag med den ocx som jag MÅSTE använda när en tjänst inte skall ha något formulär?Sv:Hur använda ocx i en tjänst
Sv: Hur använda ocx i en tjänst
Finns det andra alternativ?Sv:Hur använda ocx i en tjänst
Det finns en DLL men den får jag inte heller att fungera.
Den kan inte registreras med resvr32 och om jag försöker använda den så får jag felmeddelande i stil med 'Can't find entrypoint'. Vad nu det betyder. Sv: Hur använda ocx i en tjänst
Jag skulle satsa på DLL'n, eftersom den saknar entrypoint så är det antagligen ingen COM DLL. Du får nog anropa den på samma sätt som api anrop.Sv:Hur använda ocx i en tjänst
BOOL SendMessageExist(void);
bool CheckConnectionError(
int* code
);
int PutBuffer(
BYTE mclass,
BYTE type,
SHORT length,
char* data
);
LONG GetBuffer(
BYTE* mclass,
BYTE* type,
SHORT* length,
char* data
);
void GetData(
int *pingtimerinterval,
byte *key,
char *user,
char *unc,
int *port
);
void SetData(
int pingtimerinterval,
byte *key,
char *user,
char *unc,
int port
);
void SetPingInterval
int pingtimerinterval
);
void SetCryptKey(
byte *key
);
void SetUser(
char *user
);
etc
Jag har deklarerat dessa i en modul som
Declare Auto Function SendMessageExist Lib "X.dll" Alias "SengMessageExists" () As Boolean
Declare Auto Function CheckConnectionError Lib "X.dll" Alias "CheckConnectionError (ByVal code As Integer) As Boolean
Declare Auto Function PutBuffer Lib "X.dll" Alias "PutBuffer" (ByVal mclass As Byte, ByVal restype As Byte, ByVal Lenght As Integer, ByVal data As String) As Integer
Declare Auto Function GetBuffer Lib "X.dll" Alias "GetBuffer" (ByVal mclass As Byte, ByVal restype As Byte, ByVal Lenght As Integer, ByVal data As String) As Long
Declare Auto Sub GetData Lib "X.dll" Alias "GetData" (ByVal pingtimerinterval As Integer, ByVal Key As Byte, ByVal User As String, ByVal Unc As String, ByVal Port As Integer)
Declare Auto Sub SetUser Lib "X.dll" Alias "SetUser" (ByVal User As String)
etc
I sub main så anropar jag t.ex.
SetUser("12345")
och får då
Gick inte att hitta någon startadress med namnet SetUser i dll filen.
Vad gör jag för fel?Sv: Hur använda ocx i en tjänst
Detta skulle ge felmedelandet "Bad DLL Calling Convention".
Om du söker vb c dll på goggle får du flera tips.
http://www.google.se/search?q=vb+c+dll&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a
Jag misstänker att Din dll inter är avsed för att anropa från VB utan från C.
Jag tror en lämplig lösning för dig är att skriva eller be någon som kan C/C++ göra ett .Net bibliotek för din dll.
Så kan du sedan anropa den från din Service.