j'ai ça :
"
// testdll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "testdll.h"
__declspec(dllexport) int __stdcall sivallertest(int i,int b)
{
return i*b;
}
"
Le compilateur est censer de me générer une library avec vc++ avec la
routine "sivallertest" exporté.
Rapport :
Le compilateur m'exporte la routine "sivallertest" au nom de
"sivallertest@@YGHHH@Z" au lieu de "sivallertest".
Conclusion sous delphi :
"program Project1;
{$APPTYPE CONSOLE}
function sivallertest(a,b : integer) : integer; stdcall external
'testdll.dll';
begin
// Insérer le code utilisateur ici
writeln(sivallertest(5,20));
readln;
end.
"
Ne peux trouver la routine "sivallertest".
Conlusion :
On ne sait probablement pas créez des library multi-plateform (delphi,vc++).
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut
t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Le Mon, 27 Oct 2003 12:01:34 +0000, Sivaller a écrit :
honnêtement je n'ai pas compris un traître mot de ton message, ce qui est sans importance vu que tu es totalement Hors-Sujet
fr.comp.os.ms-windows.programmation
Erwann ABALEA
Bonjour,
On Mon, 27 Oct 2003, Sivaller wrote:
[... plein de machins VC++, Delphi, DLL ...]
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça supprimera la décoration de nom.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un autre puisqu'un article a toujours la reference de celui auquel il repond. Et puis, il y a dejanews.... alors.... -+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Bonjour,
On Mon, 27 Oct 2003, Sivaller wrote:
[... plein de machins VC++, Delphi, DLL ...]
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut
t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te
simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça
supprimera la décoration de nom.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un
autre puisqu'un article a toujours la reference de celui auquel il
repond. Et puis, il y a dejanews.... alors....
-+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça supprimera la décoration de nom.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un autre puisqu'un article a toujours la reference de celui auquel il repond. Et puis, il y a dejanews.... alors.... -+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Mickael Pointier
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.
Mike
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN
faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++
m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= extern "C"
{
__declspec(dllexport) int __stdcall sivallertest(int i,int b)
{
return i*b;
}
}
=================
Tu es victime de ce qu'on appelle la "décoration".
Les trucs bizard à la fin du nom représentent en fait les informations
de typage de ta fonction (int i, int b, le fait que ca retourne un
int...), qui permet de différencier les différentes fonctions pouvant
avoir le même nom mais des paramètres différents.
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.
Mike
Martinez Jerome
Sivaller wrote:
non pas encore : Ce maudit de compilateur me le remplace par ""
donc on ne peux pas creez de library multi languages .
C'est bizarre, j'en fait assez souvent des lib multi-language... Un exemple valant mieux qu'un long discours, et mes connaissances etant limitées (je suis débutant), va faire un download de la DLL sur http://mediainfo.sourceforge.net
Mes utilisateurs (et moi) l'utilisent avec Visual C++, Borland c++ builder et VisualBasic. Il y a le .h associé dans le ZIP de la DLL, afin que tu vois comment ca marche. C'est tout simple, avec sans doute plein de fautes, mais on parle de débutant a débutant donc ca ira :))
Sivaller wrote:
non pas encore :
Ce maudit de compilateur me le remplace par "_sivallertest@8"
donc on ne peux pas creez de library multi languages .
C'est bizarre, j'en fait assez souvent des lib multi-language...
Un exemple valant mieux qu'un long discours, et mes connaissances etant
limitées (je suis débutant), va faire un download de la DLL sur
http://mediainfo.sourceforge.net
Mes utilisateurs (et moi) l'utilisent avec Visual C++, Borland c++
builder et VisualBasic.
Il y a le .h associé dans le ZIP de la DLL, afin que tu vois comment ca
marche.
C'est tout simple, avec sans doute plein de fautes, mais on parle de
débutant a débutant donc ca ira :))
non pas encore : Ce maudit de compilateur me le remplace par ""
donc on ne peux pas creez de library multi languages .
C'est bizarre, j'en fait assez souvent des lib multi-language... Un exemple valant mieux qu'un long discours, et mes connaissances etant limitées (je suis débutant), va faire un download de la DLL sur http://mediainfo.sourceforge.net
Mes utilisateurs (et moi) l'utilisent avec Visual C++, Borland c++ builder et VisualBasic. Il y a le .h associé dans le ZIP de la DLL, afin que tu vois comment ca marche. C'est tout simple, avec sans doute plein de fautes, mais on parle de débutant a débutant donc ca ira :))
Sivaller
Marche pas du tout avec l'erreur suivants : "Deleting intermediate files and output files for project 'testdll - Win32 Release'. --------------------Configuration: testdll - Win32 Release-------------------- Compiling... StdAfx.cpp Compiling... testdll.cpp G:Program FilesMicrosoft Visual StudioMyProjectstestdlltestdll.cpp(12) : fatal error C1010: unexpected end of file while looking for precompiled header directive Generating Code... Compiling... test.c G:Program FilesMicrosoft Visual StudioMyProjectstestdlltest.c(9) : fatal error C1010: unexpected end of file while looking for precompiled header directive Generating Code... Error executing cl.exe. Creating browse info file... BSCMAKE: error BK1506 : cannot open file '.Releasetestdll.sbr': No such file or directory Error executing bscmake.exe.
testdll.dll - 3 error(s), 0 warning(s) "
stdafx.cpp " // stdafx.cpp : source file that includes just the standard includes // testdll.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H // and not in this file " test.c " // testdll.cpp : Defines the entry point for the DLL application. //
__declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; };
" testdll.cpp " // testdll.cpp : Defines the entry point for the DLL application. //
#include <test.h> #include <stdafx.h>
extern __declspec(dllexport) int __stdcall sivallertest(int i,int b);
void main() { }; "
stdafx.h " // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently //
test.h " " testdll.h " " ces deux fichiers ci dessus sont vides
Erwann ABALEA a écrit dans le message :
Bonjour,
On Mon, 27 Oct 2003, Sivaller wrote:
[... plein de machins VC++, Delphi, DLL ...]
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut
t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça supprimera la décoration de nom.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un autre puisqu'un article a toujours la reference de celui auquel il repond. Et puis, il y a dejanews.... alors.... -+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Marche pas du tout avec l'erreur suivants :
"Deleting intermediate files and output files for project 'testdll - Win32
Release'.
--------------------Configuration: testdll - Win32
Release--------------------
Compiling...
StdAfx.cpp
Compiling...
testdll.cpp
G:Program FilesMicrosoft Visual StudioMyProjectstestdlltestdll.cpp(12)
: fatal error C1010: unexpected end of file while looking for precompiled
header directive
Generating Code...
Compiling...
test.c
G:Program FilesMicrosoft Visual StudioMyProjectstestdlltest.c(9) :
fatal error C1010: unexpected end of file while looking for precompiled
header directive
Generating Code...
Error executing cl.exe.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.Releasetestdll.sbr': No such
file or directory
Error executing bscmake.exe.
testdll.dll - 3 error(s), 0 warning(s)
"
stdafx.cpp
"
// stdafx.cpp : source file that includes just the standard includes
// testdll.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
"
test.c
"
// testdll.cpp : Defines the entry point for the DLL application.
//
__declspec(dllexport) int __stdcall sivallertest(int i,int b)
{
return i*b;
};
"
testdll.cpp
"
// testdll.cpp : Defines the entry point for the DLL application.
//
#include <test.h>
#include <stdafx.h>
extern __declspec(dllexport) int __stdcall sivallertest(int i,int b);
void main()
{
};
"
stdafx.h
"
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
test.h
"
"
testdll.h
"
"
ces deux fichiers ci dessus sont vides
Erwann ABALEA <erwann@abalea.com> a écrit dans le message :
Pine.LNX.4.33.0310271223300.19245-100000@patchwork.seclogd.org...
Bonjour,
On Mon, 27 Oct 2003, Sivaller wrote:
[... plein de machins VC++, Delphi, DLL ...]
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN
faut
t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te
simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça
supprimera la décoration de nom.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un
autre puisqu'un article a toujours la reference de celui auquel il
repond. Et puis, il y a dejanews.... alors....
-+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Marche pas du tout avec l'erreur suivants : "Deleting intermediate files and output files for project 'testdll - Win32 Release'. --------------------Configuration: testdll - Win32 Release-------------------- Compiling... StdAfx.cpp Compiling... testdll.cpp G:Program FilesMicrosoft Visual StudioMyProjectstestdlltestdll.cpp(12) : fatal error C1010: unexpected end of file while looking for precompiled header directive Generating Code... Compiling... test.c G:Program FilesMicrosoft Visual StudioMyProjectstestdlltest.c(9) : fatal error C1010: unexpected end of file while looking for precompiled header directive Generating Code... Error executing cl.exe. Creating browse info file... BSCMAKE: error BK1506 : cannot open file '.Releasetestdll.sbr': No such file or directory Error executing bscmake.exe.
testdll.dll - 3 error(s), 0 warning(s) "
stdafx.cpp " // stdafx.cpp : source file that includes just the standard includes // testdll.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H // and not in this file " test.c " // testdll.cpp : Defines the entry point for the DLL application. //
__declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; };
" testdll.cpp " // testdll.cpp : Defines the entry point for the DLL application. //
#include <test.h> #include <stdafx.h>
extern __declspec(dllexport) int __stdcall sivallertest(int i,int b);
void main() { }; "
stdafx.h " // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently //
test.h " " testdll.h " " ces deux fichiers ci dessus sont vides
Erwann ABALEA a écrit dans le message :
Bonjour,
On Mon, 27 Oct 2003, Sivaller wrote:
[... plein de machins VC++, Delphi, DLL ...]
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut
t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Tu es complètement hors sujet, mais voici quand même une piste pour te simplifier la tâche: renomme ton fichier testdll.cpp en testdll.c, ça supprimera la décoration de nom.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- D'ailleurs, je me demande a quoi cela sert de "quoter" le texte d'un autre puisqu'un article a toujours la reference de celui auquel il repond. Et puis, il y a dejanews.... alors.... -+- CB in: Guide du Neuneu d'Usenet - T'avais qu'à suivre -+-
Sivaller
non pas encore : Ce maudit de compilateur me le remplace par ""
donc on ne peux pas creez de library multi languages .
Mickael Pointier a écrit dans le message : bniuak$aa5$
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= > Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.
Mike
non pas encore :
Ce maudit de compilateur me le remplace par "_sivallertest@8"
donc on ne peux pas creez de library multi languages .
Mickael Pointier <mpointie@eden-studios.fr> a écrit dans le message :
bniuak$aa5$1@reader1.imaginet.fr...
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN
faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++
m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > extern "C"
{
__declspec(dllexport) int __stdcall sivallertest(int i,int b)
{
return i*b;
}
}
================= >
Tu es victime de ce qu'on appelle la "décoration".
Les trucs bizard à la fin du nom représentent en fait les informations
de typage de ta fonction (int i, int b, le fait que ca retourne un
int...), qui permet de différencier les différentes fonctions pouvant
avoir le même nom mais des paramètres différents.
non pas encore : Ce maudit de compilateur me le remplace par ""
donc on ne peux pas creez de library multi languages .
Mickael Pointier a écrit dans le message : bniuak$aa5$
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= > Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.
Mike
Frederic Lachasse
"Sivaller" wrote in message news:bnj61o$50l$
non pas encore : Ce maudit de compilateur me le remplace par ""
Je pense que cela vient du __stdcall, qui sont sensé suivre ce type de nommage (le 8 correspond à la taille des paramêtres sur la pile en octets. C'est le cas de toutes les API Windows. Un autre langage Windows ce doit de faire la même chose.
donc on ne peux pas creez de library multi languages .
Bien sûr que oui, mais il faut connaître exactement l'interface binaire des langages.
Note: extern "C" est une déclaration C++, mais __stdcall est une extention de Microsoft. Pour plus de renseignement sur __stdcall et comment interfacer C++ et Delphi, ce forum n'est pas vraiment conseillé. Voir un forum Windows et/ou Delphi.
Mickael Pointier a écrit dans le message : bniuak$aa5$
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > > extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= > > Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.
Mike
"Sivaller" <sivaller@lycos.fr> wrote in message
news:bnj61o$50l$1@news-reader1.wanadoo.fr...
non pas encore :
Ce maudit de compilateur me le remplace par "_sivallertest@8"
Je pense que cela vient du __stdcall, qui sont sensé suivre ce type de
nommage (le 8 correspond à la taille des paramêtres sur la pile en octets.
C'est le cas de toutes les API Windows. Un autre langage Windows ce doit de
faire la même chose.
donc on ne peux pas creez de library multi languages .
Bien sûr que oui, mais il faut connaître exactement l'interface binaire des
langages.
Note: extern "C" est une déclaration C++, mais __stdcall est une extention
de Microsoft. Pour plus de renseignement sur __stdcall et comment interfacer
C++ et Delphi, ce forum n'est pas vraiment conseillé. Voir un forum Windows
et/ou Delphi.
Mickael Pointier <mpointie@eden-studios.fr> a écrit dans le message :
bniuak$aa5$1@reader1.imaginet.fr...
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN
faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++
m'exporte
la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > > extern "C"
{
__declspec(dllexport) int __stdcall sivallertest(int i,int b)
{
return i*b;
}
}
================= > >
Tu es victime de ce qu'on appelle la "décoration".
Les trucs bizard à la fin du nom représentent en fait les informations
de typage de ta fonction (int i, int b, le fait que ca retourne un
int...), qui permet de différencier les différentes fonctions pouvant
avoir le même nom mais des paramètres différents.
non pas encore : Ce maudit de compilateur me le remplace par ""
Je pense que cela vient du __stdcall, qui sont sensé suivre ce type de nommage (le 8 correspond à la taille des paramêtres sur la pile en octets. C'est le cas de toutes les API Windows. Un autre langage Windows ce doit de faire la même chose.
donc on ne peux pas creez de library multi languages .
Bien sûr que oui, mais il faut connaître exactement l'interface binaire des langages.
Note: extern "C" est une déclaration C++, mais __stdcall est une extention de Microsoft. Pour plus de renseignement sur __stdcall et comment interfacer C++ et Delphi, ce forum n'est pas vraiment conseillé. Voir un forum Windows et/ou Delphi.
Mickael Pointier a écrit dans le message : bniuak$aa5$
Quelle (mot de passe) ou syntaxe apparament non documenté dans MSDN faut t'il entrez dans "testdll.cpp" pour que le compilateur Vc++ m'exporte la routine "sivallertest" au nom de "sivallertest" ??
Essaye ca à tout hasard:
================= > > extern "C" { __declspec(dllexport) int __stdcall sivallertest(int i,int b) { return i*b; }
} ================= > > Tu es victime de ce qu'on appelle la "décoration". Les trucs bizard à la fin du nom représentent en fait les informations de typage de ta fonction (int i, int b, le fait que ca retourne un int...), qui permet de différencier les différentes fonctions pouvant avoir le même nom mais des paramètres différents.