R
Falls es sich um C++ handelt, in der DLL also Klassen sind, würde ich Dir auch COM empfehlen. Sind es allerdings nur ein paar Funktionen, dann nimm Standard-DLLs.
Bei COM folgendes:
Nimm den Anwendungsassistenten (Günstig wäre gleich VC .NET mit der ATL7.0). Erstelle ein ATL-Projekt, hier einen InProc-Server, also eine DLL. Danach auf das erstellte Projekt rechtsklicken und Klasse hinzufügen. Hier reicht ein einfaches ATL-Objekt mit Dualer Schnittstelle. Dem gibst Du dann einen Namen. Durch die Mehrfachvererbung, die bei ATL-Objekten üblich ist, kannst Du einfach Deine C++-Klasse nehmen und das neu erstellte Objekt davon ableiten. Nun mit dem Assistenten noch ein paar Properties und Funktionen als Wrapper für die darunterliegende C++-Klasse geschrieben, welche sich dann auch in die *.idl eintragen und von aussen einfach per C#/VB ansprechbar sind.
Der Anwendungsassistent nimmt dir im Endeffekt die ganze Portierung nach COM ab.