Bonjour
tous est dans le titre: peut on utiliser une DLL DotNet dans un programme en C? et si oui comment doit on faire?
Cordialement.
 Peut on utiliser une DLL DotNEt (C#) dans un programme en C?
 Peut on utiliser une DLL DotNEt (C#) dans un programme en C?
				
				
						
						
				Bonjour
tous est dans le titre: peut on utiliser une DLL DotNet dans un programme en C? et si oui comment doit on faire?
Cordialement.
 
 
				
				
						
						
				Tu peux, mais uniquement en tant que composant COM.
Ta DLL doit donc être COM-Visible, ainsi que les types que tu veux exposer (classes et interfaces) qui doivent avoir un UUID correctement défini.
Ensuite, tu dois définir les mêmes interfaces en C (ou bien, regénérer un fichier d'en-tête à partir de la Type Library, en utilisant le programme OLEVIEW.EXE livré avec Visual).
Une fois cela fait, tu pourras utiliser ta classe .Net comme simple classe COM (simplement, ça ne s'enregistre pas avec regsvr32.exe, mais avec un autre programme, il me semble que c'est regasm.exe).
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
 
 
				
				
						
						
				Pas sous la main, mais il me semble qu'il y avait un tuto ou un article quelque part sur dvp (le site, pas le forum)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
 
 
				
				
						
						
				Là, ce n'est pas seulement du COM Interop, c'est du COM Interop + Late Binding (utilisation de l'interface IDispatch).
Tu peux aussi bien faire ça en C qu'en C++.
Pour la peine, une traduction de ce code en C (plus quelques corrections):
Code C : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
 
 
				
				
						
						
				j'ai fait un CoInitialize dans mon programme en C++ mais c'est pas reconnu pourquoi? (desolé je suis pas un crac en C++
Partager