Ok!!!
So perfettamente che ora direte che sono un rompi...
Comunque! Una regola non scritta ma apprezzabile da qualunque programmatore è quella di dare nomi coerenti con il tipo di oggetto si stia utilizzando
es:
Una stringa la identificheremo con il prefisso "str" un oggetto con "obj" un textbox con "txt" e così via! (parentesi chiusa)
Ora parliamo del tuo codice sia la dll che l'exe per testarlo.
Per prima cosa non istanziare mai nessun tipo di oggetto se non è indispensabile. Quindi la "IF" per verificare che il valore sia arrivato alla dll presuppone il fatto che tu chiami comunque la dll anche se il campo esterno non sia stato valorizzato. Un consiglio... testa il campo dell'applicazione chiamante se valorizzato istanzi la dll altrimenti no. Ora chiamiamo il progetto dll prjLeggi creiamo una classe chiamata clsLeggiDoc e all'interno di quest'ultima scriviamo il seguente codice
codice:
Public Function mtdConta(ByVal strDocSource As String) As Variant
Dim objWord As Word.Application
Dim strNumParole As String
Set objWord = New Word.Application
objWord.Documents.Open FileName:=strDocSource, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=0
strNumParole = ActiveDocument.BuiltInDocumentProperties(wdPropertyWords)
objWord.ActiveDocument.Close savechanges:=wdDoNotSaveChanges
objWord.Application.Quit
Set objWord = Nothing
mtdConta = strNumParole
End Function
Bene... compila la tua dll come dllLeggi.dll. Attenzione!!! Ogni volta che compili la tua dll se non verificherai la binary compatibility scriverai un classid nuovo nel registro, ne scriverai tanti quante volte la compili.
Perfetto ora abbiamo la dll da poter utilizzare, segui le seguenti istruzioni per creare il tuo testdll.
Sempre con la dll aperta vai nel menu file-->add project, scegli la scheda new e seleziona un progetto standard exe. Fai click destro sul nuovo progetto e seleziona set as start up, ora con il nuovo progetto selezionato seleziona il menu Project-->References e includi la tua nuova dll (dllLeggi.dll). Scrivi il seguente codice
codice:
Private Sub btnEsegui_Click()
Dim objMiadll As dllLeggi.clsLeggiDoc
Set objMiadll = New dllLeggi.clsLeggiDoc
LblConteggio = objMiadll.mtdConta(TxtPath.Text)
Set objMiadll = Nothing
End Sub
Metti un break dove più lo ritieni opportuno e lancialo.
Questo è quanto.
Ti saluto e spero di essere stato abbastanza chiaro.
Per qualunque cosa comunque fammi sapere.
Ciao