Newsgroup: it.comp.lang.visual-basic
Titolo: VB .NET: ActiveX dll

Ciao a tutti, innanzitutto mi scuso se dovessi essere OT (un ng di vb net in
italiano non l'ho trovato).
Volevo chiedere se sapete se e in che modo è ancora possibile con Visual
Studio .Net e in particolare con VB .NET creare un progetto activex dll.
Tra le varie scelte dei progetti ci sono "Class library", "window control
library" e "web control library".
Sapete la differenza? E soprattuto qualcuno di questi progetti implica che
il componente possa funzionare solo su framework .net?
Quest'ultima opzione la vorrei evitare in tutti i modi per renderlo
compatibile con win2k (e non obbliga questi utenti ad installare  il
framework).
Grazie per ogni consiglio

 italiano non l'ho trovato).
Scusate mi sono accorto ora che esiste e si chiama free.it.comp.lang.vbnet,
provo a postare la.
Ciao a tutti

> Grazie per ogni consiglio
Ho trovato la risposta la posto per gli utenti google.
Is it still possible to make an ActiveX DLL with VB .NET or do I have to
stick with VB6 to do this ?
Christian
        Josef Vetter [@
hotmail.com
]
      Yes, you can do this with 
VB.NET
.
      1. Create a Classlibrary-Project.
      2. Right Click the Project (not the Solution).
      3. Choose Properties.
      4. Choose Configuration Properties\Build
      5. Check the Checkbox "Register for Com Interop".
Create a Keyfile wiht SN.EXE and add it to the Project.
Add this Attribut to your AssemblyInfo.vb.
<Assembly: AssemblyKeyFile("yourkeyfile.snk")>
You can also do it like described in VS.NET-MSDN:
**************************************************
The ComClassAttribute attribute instructs the compiler to
add meta-data that allows a class to be exposed as a COM
object.
<System.AttributeUsage(System.AttributeTargets.Class, _
Inherited := False, AllowMultiple := False)> _
Public NotInheritable Class ComClassAttribute
Inherits System.Attribute
Remarks
Use ComClassAttribute to simplify the process of creating
COM components from Visual Basic .NET. COM objects are
considerably different from .NET assemblies, and without
the ComClassAttribute, you need to follow a number of
steps to generate a COM object from Visual Basic .NET. For
classes marked with ComClassAttribute, the compiler
performs many of these steps automatically.
Example
To run this example, create a new Class Library
application and add the following code to a class module.
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId,
ComClass1.EventsId)> _
Public Class ComClass1
' Use the Region directive to define a section named
COM Guids.
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. You can generate
' these guids using guidgen.exe
Public Const ClassId As String = "7666AC25-855F-4534-
BC55-27BF09D49D46"
Public Const InterfaceId As String = "54388137-8A76-
491e-AA3A-853E23AC1217"
Public Const EventsId As String = "EA329A13-16A0-478d-
B41F-47583A761FF2"
#End Region
Public Sub New()
MyBase.New()
End Sub
Function AddNumbers(ByVal X As Integer, ByVal Y As
Integer)
AddNumbers = X + Y
End Function
End Class
Use "Create Guid" from the menu "Tools\Create GUID...", to
create your Guids.
Regards
Josef

 framework).
Al di la' della risposta sulla ActiveX DLL, che ti sei gia' dato da solo,
nota che la librerie diventa compatibile con COM ma solo nei confronti dei
programmi *esterni*; in quanto programma a se, resta a tutti gli effetti una
assembly .net e quindi non puoi prescindere dal framework
L'unico linguaggio .NET che al momento ti permette di compilare programmi
stand-alone e' C++.NET
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

      Yes, you can do this with 
VB.NET
.
[cuttone sull'esempio]
In realta' il risultato _non_ e' una vera dll activex.
E' semplicemente un assembly .net (che necessita quindi
del suo bravo runtime) con in piu' una type library
che rimappa il componente per i client COM.
AFAIK, _non_ si possono produrre vere dll COM con .net.
-- 
ciao, hal