Desenvolupar una DLL en VisualC++
compatible en VisualBasic
per Jordi Binefa
Crear un nou projecte MFC AppWizard(dll) :

Escollir una DLL normal compartida MFC DLL :

L’espai de treball tindrà aquest aspecte :

Afegeix una nova classe genèrica (myNewClass) :

Afegeix una nova funció membre a la nova classe (double myNewClass::triple(double num)) :

Escriu un codi a la nova funció :
double myNewClass::triple(double num)
{
return 3*num;
}
Selecciona l’arxiu cpp (pciStyle0Z.cpp) :

Afegeix l’arxiu de capçalera de la nova classe al principi de pciStyle0Z.cpp (just a sota del #endif):
#include “myNewClass.h”
Afegeix al final de pciStyle0Z.cpp:
myNewClass nc;
extern
"C" double PASCAL EXPORT byThree(double num)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return
nc.triple(num);
}
S’ha declarat un nou objecte nc que pertany a la classe myNewClass. La funció byThree(double num) retorna un double i llur funció externa és compatible per qualsevol entorn de programació (com VisualBasic o VisualC++).
Per cridar la funció de la DLL des de VisualBasic :
Private Declare Function byThree Lib "pciStyle0Z.dll"
(ByVal n As Double) As Double
Private Sub Command1_Click()
Dim i As Double
numero = 15
i = byThree(numero)
MsgBox "El triple de " &
numero & " és " & i & "."
End Sub