Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446

    [C#]dll e COM object

    Volevo qualche dritta su dll e com object, esiste un qualche sito che spieghi bene cosa sono, come si creano e come vengono usate??
    Io ho una mia applicazione MyProject06 formata da un form.cs e da altre classi.
    Ora dovrei creare una dll per poter usare il mio progetto in un'altra applicazione senza dover riscrivere tutto il codice, ma non so proprio come muovermi.
    Se qualcuno mi sa dare qualche dritta gli sarei veramente grata!!!!!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Dalle esigenze che esponi, non è ben chiaro il ruolo di un COM Object. :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    Che cos'è un COM object?
    Se io ho il mio progetto formato da un certo numero di classi, e lo compilo generando un progetto dll da esportare e poi inserisco il riferimento sul nuovo progetto, è corretto?
    E se lo compilo come dll una volta che aggiungo il riferimento a questo dll nel mio nuovo progetto, riesco ad accedere a tutte le classi del mio vecchio progetto?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    Qualcuno sa dirmi cosa servono questi due metodi?
    Mi hanno detto di darci un occhiata per creare la mia dll

    codice:
    [ComRegisterFunction()]
    public static void RegisterClass ( string key )
    { 
      // Strip off HKEY_CLASSES_ROOT\ from the passed key as I don't need it
      StringBuilder sb = new StringBuilder ( key ) ;
      sb.Replace(@"HKEY_CLASSES_ROOT\","") ;
    
      // Open the CLSID\{guid} key for write access
      RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(),true);
    
      // And create the 'Control' key - this allows it to show up in 
      // the ActiveX control container 
      RegistryKey ctrl = k.CreateSubKey ( "Control" ) ; 
      ctrl.Close ( ) ;
    
      // Next create the CodeBase entry - needed if not string named and GACced.
      RegistryKey inprocServer32 = k.OpenSubKey ( "InprocServer32" , true ) ; 
      inprocServer32.SetValue ( "CodeBase" , Assembly.GetExecutingAssembly().CodeBase ) ; 
      inprocServer32.Close ( ) ;
    
      // Finally close the main key
      k.Close ( ) ;
    }
    
    
    [ComUnregisterFunction()]
    public static void UnregisterClass ( string key )
    {
      StringBuilder sb = new StringBuilder ( key ) ;
      sb.Replace(@"HKEY_CLASSES_ROOT\","") ;
    
      // Open HKCR\CLSID\{guid} for write access
      RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(),true);
    
      // Delete the 'Control' key, but don't throw an exception if it does not exist
      k.DeleteSubKey ( "Control" , false ) ;
    
      // Next open up InprocServer32
      RegistryKey inprocServer32 = k.OpenSubKey ( "InprocServer32" , true ) ;
    
      // And delete the CodeBase key, again not throwing if missing 
      k.DeleteSubKey ( "CodeBase" , false ) ;
    
      // Finally close the main key 
      k.Close ( ) ;
    }

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da 83kiara83
    Se io ho il mio progetto formato da un certo numero di classi, e lo compilo generando un progetto dll da esportare e poi inserisco il riferimento sul nuovo progetto, è corretto?
    E' corretto... per fare cosa?

    Originariamente inviato da 83kiara83
    E se lo compilo come dll una volta che aggiungo il riferimento a questo dll nel mio nuovo progetto, riesco ad accedere a tutte le classi del mio vecchio progetto?
    Sì.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.