je voudrais creer une dll avec Visual C++
Est il necessaire d'avoir la plateforme SDK pour faire des DLL ?
merci
je voudrais creer une dll avec Visual C++
Est il necessaire d'avoir la plateforme SDK pour faire des DLL ?
merci
ca dépend de quels dlls tu parles
si ce sont des dll natives, ce n'est pas necessaire, mais ca peut le devenir si tu as besoin d'utiliser les api win32
si ce sont des dll assemblys, ce n'est pas nécessaire
je ne sais pas ce que c'est que les dll natives et assembly.
mais j'ai resolu mon pb.
pour ma culture, c4est quoi la diff entre les deux?
disons pour faire simple,
l'assembly dotnet est une dll .net, utilisable par C#, VB.Net, C++/CLI, etc ...
une dll "native" n'utilise pas .net
et pour faire une dll simple, que l'on utilise dans Excel,
est-t elle native ou non?
une dll utilisable dans excel sera essentiellement un Objet COM (je ne sais pas si les nouvelles versions d'excel sont capables d'utiliser des assemblys, mais surement je dirais).
Après, il est aussi possible d'utiliser une dll "native", car comme tout langage, le vba est capable de charger une dll.
Après, il faut savoir quoi faire et pour quels besoins pour utiliser la meilleur solution adaptée
le pire est que ce que j'ai fait ca marche, sans savoir pourquoi
Voici comment je declare et compile la dll
a toi de voir si c'est natif ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
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 namespace finum { int initiation(void); double N(double x); double resolution_cubic(double beta,double f,double rho,double nu,double tex,double sigma_ATM); double renvoie(int i,int j); double f(double beta,double f,double tex,double sigma_ATM); double sigma_sabr(double f,double K,double beta,double nu,double alpha,double tex,double rho); } int main(); #define int_dll __declspec(dllexport) int __stdcall #define void_dll __declspec(dllexport) void __stdcall #define double_dll __declspec(dllexport) double __stdcall #define long_dll __declspec(dllexport) long __stdcall extern "C" { double_dll N(double x){return finum::N(x) ;} int_dll initiation(){return finum::initiation();} double_dll resolution_cubic(double beta,double f,double rho,double nu,double tex,double sigma_ATM){return finum::resolution_cubic( beta, f, rho, nu, tex, sigma_ATM);} double_dll renvoie(int i, int j){return finum::renvoie( i, j);} double_dll f(double beta,double f,double tex,double sigma_ATM){return finum::f(beta,f,tex,sigma_ATM);} double_dll sigma_sabr(double f,double K,double beta,double nu,double alpha,double tex,double rho){return finum::sigma_sabr(f,K,beta,nu,alpha,tex,rho);} }
Partager