Bonjour,
Tout d'abord merci pour ce site qui m'apporte beaucoup d'aide dans me programmation à tel point que je n'avais jamais eu besoin d'ouvrir de discussion![]()
Je vous expose brièvement mon problème :
Je développe actuellement une application sous delphi XE4 dans laquelle j'ai besoin de modifier dynamiquement la sortie son par défaut de Windows (Windows 7 64 bits).
J'ai eu beau chercher et je n'ai pas trouvé de solution avec delphi. Si quelqu'un en a une je suis preneur...
Par contre, j'ai trouvé une application développée en C++ qui le fait très bien. malheureusement, impossible de traduire celle-ci en Pascal car elle utilise des instruction qui ne semble pas exister sous delphi.
Mon idée est donc de créer une DLL en C++ avec les fonctions utiles à cette tâche, que mon application utiliserait (apparemment cela et faisable d'après ce que j'ai pus voir sur différents sites).
Pour commencer j'ai donc développé une petite DLL très simple sous Visual studio 2013 et une petite application qui l'utilise et tout fonctionne parfaitement.
Puis j'ai crée une application sous Delphi XE4 afin d'utiliser cette DLL.
Lorsque je lance l'application Delphi, j'ai le message d'erreur suivant : "Le point d'entrée de procédure Add est introuvable dans la bibliothèque de liens dynamiques MathFuncsDll.dll"
J'ai eu beau chercher et tester les différentes solutions trouvés ici et là, je ne parviens pas à trouver la cause de ce message...
Si une bonne âme pouvait regarder mon code et me dire pourquoi mon application ne parvient pas à trouver le point d'entrée de la procédure...
pour ne pas alourdir mon post avec trop de code, je donne le lien du tuto que j'ai suivi pour créer la DLL (site Microsoft) :
http://msdn.microsoft.com/fr-fr/library/ms235636.aspx
vous y trouverez tout le code de la DLL (je n'ai fait que du copier coller...)
Voici le code de l'application delphi :
Merci d'avance...
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
28
29
30
31
32
33
34 unit UnitTestDLL; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons; type TForm2 = class(TForm) SpeedButton1: TSpeedButton; LabeledEdit1: TLabeledEdit; procedure SpeedButton1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form2: TForm2; function Add(A, B: Double): Double; cdecl; external 'MathFuncsDll.dll'; //name 'MathFuncs::MyMathFuncs::Add'; implementation {$R *.dfm} procedure TForm2.SpeedButton1Click(Sender: TObject); begin LabeledEdit1.Text := FloatToStr(Add(2, 3)); end; end.
Partager