Ich will von einem VC++ DLL aus auf eine aufrufende VB-Form Grafik zeichnen (MS Visual Studio 6.0) :
- das Oobjekt "Form" besitzt schon in VB die (windowsspezifische) eigenschaft hDC, die als long weitergegeben werden kann.
- C++ empfängt das, akzeptiert auch als DC, denn es zeichnet (angeblich) die Ellipse und meldet zurueck "die ellipse sei fehlerlos gezeichnet"...
- und es erscheint doch nichts auf der VB-form:
C++ seitig:
--------------
extern "C" int PASCAL EXPORT MyEllipse (int* F, HDC hDC)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if(Ellipse(hDC, F[0], F[1], F[2], F[3])!=0)
return -1; // falls fehlerlos gezeichnet, dann -1 zurueckgeben,
else
return GetLastError(); // falls fehler, fehlercode (> 0) zurueckgeben.
}
VB-seitig:
-----------
Private Declare Function MyEllipse Lib "MyMFC.dll" _
(ByRef F0 As Integer, ByVal hDC As Long) As Integer
Private Sub Form_Load()
Dim F(3) As Integer
F(0) = 500
F(1) = 500
F(2) = 1000
F(3) = 1000
n = MyEllipse(F(0), me.hDC) ' Auf der Form erscheint jedoch NICHTS !
MsgBox (n) ' Trotzdem meldet es -1, dh. "Ellipse mit erfolg gezeichnet!"
End Sub
kann mir jemand helfen???
tulgan
- das Oobjekt "Form" besitzt schon in VB die (windowsspezifische) eigenschaft hDC, die als long weitergegeben werden kann.
- C++ empfängt das, akzeptiert auch als DC, denn es zeichnet (angeblich) die Ellipse und meldet zurueck "die ellipse sei fehlerlos gezeichnet"...
- und es erscheint doch nichts auf der VB-form:
C++ seitig:
--------------
extern "C" int PASCAL EXPORT MyEllipse (int* F, HDC hDC)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if(Ellipse(hDC, F[0], F[1], F[2], F[3])!=0)
return -1; // falls fehlerlos gezeichnet, dann -1 zurueckgeben,
else
return GetLastError(); // falls fehler, fehlercode (> 0) zurueckgeben.
}
VB-seitig:
-----------
Private Declare Function MyEllipse Lib "MyMFC.dll" _
(ByRef F0 As Integer, ByVal hDC As Long) As Integer
Private Sub Form_Load()
Dim F(3) As Integer
F(0) = 500
F(1) = 500
F(2) = 1000
F(3) = 1000
n = MyEllipse(F(0), me.hDC) ' Auf der Form erscheint jedoch NICHTS !
MsgBox (n) ' Trotzdem meldet es -1, dh. "Ellipse mit erfolg gezeichnet!"
End Sub
kann mir jemand helfen???
tulgan
Comment