2010-07-16 7 views
0

Comme je l'ai lu jusqu'àRédaction d'une enveloppe Delphi pour P/Invoke et MSCorLib.dll

Je dois obtenir une certaine base pour construire en toute sécurité sur Lorsque .net prend une * .dll à partir de Windows, il n'est plus disponible pour .com. 1/Cette règle signifie-t-elle que je perds loadlibray() et GetProcAddress() pour charger une DLL .net comme mscorlib.dll. un développeur dit non, alors je demande quelles sont les limites que j'ai. Delphi a-t-il installé loadlibray() et GetProcAddress() dans le code delphi? 2/MSCorEE.dll a une liste de méthodes pour encapsuler mscorlib.dll, que je suis sur le point de créer un fichier * .pas pour me connecter au MSCorEE.dll. Puis-je utiliser un fichier mscorlib_tbl comme référence à mscorlib.dll.

3/Après l'installation de P/Invoke, je n'ai aucune référence pour créer un wrapper Delphi. certains peuvent suggérer quelque chose que je pourrais utiliser s'il vous plaît.

4/Si je pouvais trouver une copie de mscoree.h & metahost.h & MSCorEE.dll cela me ferait gagner beaucoup de travail.

+3

P/Invoke n'est pas quelque chose que vous "installez". C'est le nom d'une * technique * que les programmes .Net utilisent pour utiliser des DLL non-Net. Comme il semble que vous n'écrivez pas de programme .Net, vous n'avez pas à vous soucier de P/Invoke. Qu'essayez-vous de faire? Aussi, pourquoi continuez-vous à créer de nouveaux comptes pour vous-même? –

+0

Je sais ce que P/Invoke est mais personne d'autre ne semble vouloir écrire un emballage je demande de l'aide. Pouvez-vous décomposer P/Invoke en assemblage. – lexdean

+0

votre question est un non-sens total –

Répondre

1

Je suppose que vous voulez réaliser quelque chose comme http://www.codeproject.com/KB/COM/simpleclrhost.aspx

Installer le Microsoft SDK et vous obtiendrez tous .h fichiers nécessaires.

Ensuite, vous pouvez convertir le fichier d'en-tête C en Delphi. Vous trouverez comment dans this article of Rudy's Delphi Corner.

Mais vous aurez besoin de beaucoup de compréhension sur le fonctionnement du code managé de bas niveau pour l'interface avec le code non managé de Delphi.

Je ne comprends pas exactement ce que vous voulez faire. Jetez un oeil aux solutions existantes comme l'appel COM interop, au lieu de s'enfoncer dans les API de bas niveau non documentées. Cela peut vous faire gagner beaucoup de temps.

Plus facilement, et de mon expérience, vous pouvez facilement appeler l'appel DotNet à partir d'une application Delphi, juste en exposant certains objets DotNet à un objet COM, puis les appeler à partir de Delphi. Même l'interface graphique DotNet peut être appelée très facilement. Vous devez simplement prendre en compte l'enregistrement des objets COM DotNet pour la couche de compatibilité Wow64, car les applications Delphi ne sont (encore) que de 32 bits.

+0

Pourquoi avez-vous déprécié? S'il vous plaît dites ce qui ne va pas avec cette réponse. Bien sûr, la question est un peu "obscurcie", mais je ne suis pas à blâmer. Je veux juste aider ici, en fournissant des liens et un peu de retour d'expérience. –