Und zwar bekomme ich mit C++ in der Konsole Zeichen aus der Codepage 437 ausgegeben.
Nun müsste ich diese Zeichen aber in einem anderen Format vorliegen haben, um sie weiter zu verarveiten. Hat jemand eine Idee, wie ich das realisieren könnte? Vorzugsweise Integer oder so.
ich hab ein ziemlich spezielles Problem. Da ich einige Speicher-Informationen auslesen möchte und dies aber mit VB.NET nicht so problemlos möglich ist, habe ich versucht, mein funktionierendes C++-Konsolenprogramm in eine DLL umzuwandeln.
Auf diese wollte ich dann mit VB.NET zugreifen, aber irgendwie will das nicht funktiuonieren.
Vielleicht könnt ihr euch mal den Code anschauen und mir sagen, wo der Fehler liegt?
#include "stdafx.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Der Wert, welcher in cname steht, soll dann in VB:NET weiter verarbeitet werden.
Dazu habe ich filgendes Programm probiert, aber es geht eben nicht.
Code:
Imports System.Runtime.InteropServices
Public Class Form1
Declare Auto Function GetName Lib "D:\Dokumente und Einstellungen\Enrico.SkyNet\Desktop\bot\DLL\MemoryDLL\Release\MemoryDLL.dll" ( _
ByVal PLAYERBBASE_PTR As String, _
ByVal PLAYERBASE_OFFSET As String, _
ByRef CharName As String) _
As String
Dim PB_PTR As String = "0x0088EF20"
Dim PB_OFFSET As String = "0x0580"
Dim CN As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "Start"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
GetName(PB_PTR, PB_OFFSET, CN)
Label1.Text = PB_PTR
Label2.Text = PB_OFFSET
Label3.Text = CN
End Sub
End Class
Das Problem liegt doch klar auf der Hand:
Du machsts zwar alles richtig gibst aber keinen Wert zurück, womit auch kein Wert bei deinem VB Proggi ankommt.