ja, når ejg prøver at oprette en og registrer den i windows kommer der en besked om det ikke kan lade sig gøre. Jeg har aldrig før kodet en dll, så jeg aner ikke om det er svært eller ? vil bare skide gerne igang
DLL'er lavet med .Net skal ikke registreres, for at man kan bruge dem fra et .Net program.
Desværre kan de ikke uden videre anvendes som de er fra et non-.Net program. Dette skyldes at deres interface slet ikke er af den rigtige slags. For at kunne lave en DLL, en "native DLL" eller en "unmanaged DLL", som kan bruges på denne måde skal du igennem en helt masse tekninske spisfindigheder.
Problemet er at der faktisk findes mange forskellige typer af DLL'er, og at .Net DLL'er er endnu en type.
Mht. dit problem med at interface Outlook med en .Net DLL, så har du måske en chance hvis at det er Outlook 2003 idet at der fra 2003 er indbygget .Net understøttelse i Microsoft Office suiten. Det er dog ikke noget som jeg personligt har arbejdet med endnu.
.Net producere "Managed Code" (dvs. kode som afvikles igennem CLR'et. Outlook 2000 er "Unmanaged Code". Hvis din Ooulook 2000 skal kalde en .Net DLL, vil du derfor skulle kalde managed kode fra unmanaged kode. I lige Outlooks tilfælde kan dette sikkert lade sig gøre ved at du eksponere (som det hedder) din .Net DLL som et COM-interface.
Tro mig det bliver lynhurtigt til noget temmeligt langhåret kode. Her er hvad Microsoft selv skriver om denne sag:
Sub Main(ByVal Args As String()) Dim oFSO As Scripting.FileSystemObject
oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FolderExists(Args(0)) = True Then Console.WriteLine("Der findes allerede en mappe med navnet " & Args(0)) Exit Sub Else oFSO.CreateFolder(Args(0))
End If
Console.WriteLine(Args(0))
End Sub
End Module Når jeg compiler skidtet og fyrer filen af fra den placering virker det som det skal, men hvis jeg flytter exe filen til d:\ og omdøber til test.exe og knalder den af med et parameter kommer der en mega svada i commandprompt
Det lader til at din fil linker til noget andet - en COM-dims som hedder noget i stil med Scripting.
For at et .Net program skal kunne bruge COM objekter, skal det "wrappe" dem først og det er netop det som Interop.Scripting.dll'en gør. Uden at denne er tilstede kan dit program ikke forbinde til Scripting-dimsen (hvad det så er for noget ved du måske bedre end mig), og derfor smider det den viste exception.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.