ActiveX DLL ve Visual Basic 2005 Express Edition   zodpovězená otázka

VB.NET, Komponenty

Dobrý den,

mám aplikaci, která umožňuje volat ActiveX programy takto:

myobj = CreateObject("MyAFLObject.Class1");

Graph1 = myobj.IIR2(Close, 0.2, 1.2, -0.4);

Chtěl bych si napsat vlastní ActiveX DLL ve Visual Basic 2005 Express, abych jí volat, předat parametery a přijmout výsledky.

Mám příklad pro VB6, který mi ale ve Visual Basic 2005 Express nefunguje.

Můžete mě prosím navést jak na to?

Díky

Martin

Příklad: ve VB6

Mám si vytvořit nový projekt typu ActiveX/DLL, v něm Class1 a do Class1 vložit následující funkci, překompilovat a volat z aplikace.

Public Function IIR2(InputArray() As Variant, f0 As Variant, f1 As Variant, f2 As Variant) As Variant

Dim Result()

ReDim Result(UBound(InputArray)) ' size the Result array to match InputArray

'initialize first two elements

Result(0) = InputArray(0)

Result(1) = InputArray(1)

For i = 2 To UBound(InputArray)

Result(i) = f0 * InputArray(i) + f1 * Result(i - 1) + f2 * Result(i - 2)

Next

IIR2 = Result

End Function

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se, že jsem Vás nechal čekat takhle dlouho, neměl jsem čas na vyzkoušení. ActiveX knihovny ve VB.NET 2005 psát lze, nicméně jsou závislé na .NET frameworku, takže příliš nevidím smysl. Ale možné to je.

Založte si tedy projekt typu ClassLibrary, vytvořte si třídu s metodami. Před deklaraci třídy dejte atribut ComVisible, celá deklarace by měla vypadat takto:

<Runtime.InteropServices.ComVisible(True)> _
Public Class MojeTrida

   ' zde budou metody a procedury, které potřebujete
 
End Class

Až budete mít knihovnu napsanou, vlezte do vlastností projektu a na první záložce máte tlačítko Assembly Information. Klikněte na něj a v dialogovém okně zaškrtněte volbu Make this assembly COM-Visible. Potvrďte tlačítkem OK.

V menu Build vyberte volbu Build <název projektu>. V průzkumníkovi nebo něčem podobném otevřete složku ...\Dokumenty\Visual Studio 2005\Projects\<název projektu>\Bin\Release a v té najdete příslušnou dll knihovnu. Abyste ji mohl použít, je třeba ještě vygenerovat TLB soubor. V této složce tedy vytvořte nový soubor s příponou BAT a do něj napište tento řádek (nahraďte název knihovny!):

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe <název knihovny>.dll /codebas /tlb:<název knihovny>.tlb

Nyní můžete knihovnu využít v projektu, např. ve VB6.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback