Toon posts:

[vb.net] Dll inlezen mbv DECLARE

Pagina: 1
Acties:

Verwijderd

Topicstarter
Een collega van me heeft een dll gemaakt. In de meeste talen is hij goed aan te roepen (C++ , VB6). Maar als ik hem wil aanroepen in mijn VB.NET applicatie krijg ik een exception en wel:

<DLLNotFoundException: Unable to load DLL >

Ik heb de DLL al op alle mogelijke plaatsten gekopieerd dus het lijkt me sterk dat hij hem niet kan vinden. In VB6 gaat het dus wel goed.

Ook heb ik de DLLImport functie gebruikt en die geeft dezelfde fout.

Ik kan nergens vinden waarom hij hem niet kan laden. Weet iemand toevallig of je nog iets extra's moet doen.

Dit is de aanroep.

code:
1
  Declare Auto Function LoginA Lib "GkitLicence.dll" Alias "Login" (ByVal szPath As String, ByVal szRegPath As String, ByVal progId As Integer, ByVal verbose As Boolean) As Boolean


Dit is de declaratie zoals in C
code:
1
bool Login(LPCTSTR szPath, LPCTSTR szRegPath, const UINT progId, bool verbose)


Van boolean al byte gemaakt maar dat wil niet helpen. Moet ik misschien nog iets instellen in mijn project ofzo? Of kan .NET niet meer overweg met DLL's van C++ ??

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:05

https://fgheysels.github.io/


Verwijderd

Als je nou gezeik blijft hebben, gebruik dan gewoon wat andere API calls, zoals LoadLibrary, GetProcAddress, CallWindowProc en FreeLibrary

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 07-04 17:42

mOrPhie

❤️❤️❤️❤️🤍

Let wel op dat die DLL niet managed is en dat (ook DLLImport) er een Runtime Callable Wrapper gemaakt dient te worden. Bij COM-Interop gaat dit volledig automagisch. Zelfs als je dit late-bounded doet. Echter bij DLLImport (geen COM I asume?) weet ik niet wat hij hier verder mee doet :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 11-04 15:22
Ik zie ook wel dat dit een oud topic is, maar ik heb eigenlijk hetzelfde probleem en echt geen oplossing gevonden.

Het vreemde is dat als ik een volledig pad opgeef voor de dll dat het wel werkt, maar met enkel de dll naam werkt het niet.
Uiteraard is het niet netjes om een volledig pad te gebruiken, dus dat wil ik absoluut vermijden.

Ik heb al geprobeerd de dll in windows\system32 te plaatsen, in de \bin folder bij de .exe, in de project-folder zelf.
Ook heb ik 'm proberen toevoegen aan het project via Add Existing item.
Via references kan ik 'm niet toevoegen omdat het geen COM dll is.

Ik gebruik vb.net 2005 beta2. De dll werkt prima in vb6 zonder volledig pad.

Iemand een idee hoe ik vb.net deze dll kan doen vinden?

VirtualDJ 2026 - Fast Image Resizer - Instagram


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 11-04 15:22
Ik heb ondertussen gevonden wat er fout was. Voor degenen die met hetzelfde probleem zouden zitten:
Blijkbaar geeft .net steeds als fout dat die bepaalde dll niet gevonden werd, ook als deze dll gevonden werd, maar een dll die geraadpleegd word door de eerste dll niet gevonden worden.

Dus als a.dll b.dll nodig heeft, en b.dll wordt niet gevonden, maar je .net programma gebruikt a.dll, wordt als fout gegeven dat a.dll niet gevonden werd...

VirtualDJ 2026 - Fast Image Resizer - Instagram

Pagina: 1