Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB.NET/VWD] COM DLL gebruiken in ASP.NET*

Pagina: 1
Acties:

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03 11:55
Hey hey,

Momenteel ben ik bezig met een asp.net (VB) project en hierin moet ik een C# DLL gebruiken.
Deze DLL heb ik geplaatst in de /Bin folder, maar ik kan er geen reference naar maken:
"A reference to "<dllNaam>" could not be added. No type libaries were found in the component."

Ik heb op 2 manieren geprobeerd de DDL te importeren:
code:
1
2
3
4
5
6
    Private Declare Auto Function KMCompress Lib "psutils.dll" ( _
    ByVal dst As String, _
    ByVal dlen As UInteger, _
    ByVal src As String, _
    ByVal slen As UInteger, _
    ByVal sTmp As String) As String

en
code:
1
2
3
4
5
6
7
8
<DllImport(DllName, CallingConvention:=CallingConvention.StdCall, EntryPoint:="KMCompress", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Shared Function KMCompress( _
    ByVal dst As String, _
    ByVal dlen As UInteger, _
    ByVal src As String, _
    ByVal slen As UInteger, _
    ByVal sTmp As String) As String
    End Function


Beide manieren geven natuurlijk de error:
Unable to load DLL 'psutils.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Het lijkt me puur te komen omdat ik geen reference naar de DLL kan aanmaken.

Iemand een idee voor een oplossing?

  • Zr40
  • Registratie: Juli 2000
  • Niet online

Zr40

Moderator General Chat

heeft native IPv6

Een C# library kan je gewoon behandelen als een VB.Net library, aangezien dat verschil helemaal niet bestaat. Het zijn allebei .Net libraries.

Volgens mij ben je erg omslachtig bezig. Je foutmelding geeft aan dat er gezocht wordt naar type libraries. Deze worden helemaal niet gebruikt in .Net!
Verder probeer je met de code die je postte functies in niet-.Net libraries aan te roepen. Aangezien je zegt dat het een C# (dus .Net) library is, gaat dat natuurlijk niet lukken.

In de Solution Explorer, rechts klik op References en kies Add Reference. Open de Browse tab en kies je C# dll. Gaat dat mis? Dan heb je de verkeerde dll gekregen.

offtopic:
Er is overigens één specifieke situatie waar type libraries wel gebruikt worden, en dat is namelijk interop met COM.

[ Voor 20% gewijzigd door Zr40 op 26-07-2007 00:49 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03 11:55
sorry, het was al wat laat..
het is een standaard C com dus geen library en geen NET iets.
kun je me dan helpen?

  • whoami
  • Registratie: December 2000
  • Nu online
Je moet helemaal niet met DllImport e.d. gaan werken, gewoon die C# dll als referentie in je VB.NET project gebruiken, en klaar is kees.

Ik zie nu pas dat het dus niet om een C# dll gaat, maar om een COM object ? Kijk dan eens naar tlbimp.
Kijk ook eens hier naar.

(Dergelijke links kan je ook makkelijk zelf vinden als je eens googled op bv 'using COM in .NET'.)

[ Voor 52% gewijzigd door whoami op 26-07-2007 13:44 ]

https://fgheysels.github.io/