JustShinigami
Mitglied
Hallo liebe Community,
beim testen von Wrapperstrukturen und Function Pointer ist mir ein seltsamer Fehler aufgefallen ...
Momentan versuche ich einfach nur, 2 uint werte in einer "Point" Struktur zu halten und die struktur über eine native Funktion zu erstellen.
Code:
In meiner Point Variable "Zero" bekomme ich beim debuggen aber folgenden Wert raus:
X 3730892 uint
Y 1831876848 uint
Bin ich zu blöd, über eine native Funktion einen Nullpunkt zu erstellen oder failt meine Anwendung einfach nur?
Gruß, JustShinigami
beim testen von Wrapperstrukturen und Function Pointer ist mir ein seltsamer Fehler aufgefallen ...
Momentan versuche ich einfach nur, 2 uint werte in einer "Point" Struktur zu halten und die struktur über eine native Funktion zu erstellen.
Code:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Testanwendung
{
internal static class Program
{
internal static void Main(string[] Arguments)
{
Point Zero = GetZeroPoint();
Console.WriteLine("{0}:{1}", Zero.X, Zero.Y);
Console.ReadKey();
}
[DllImport("NativeDLL.dll")]
internal static extern Point GetZeroPoint();
}
public struct Point
{
public Point(uint XPosition, uint YPosition)
{
this.X = XPosition;
this.Y = YPosition;
}
public uint X;
public uint Y;
}
}
C++:
//Point.hpp
#ifndef POINT_HPP_
#define POINT_HPP_
struct Point
{
public:
Point(unsigned long int XPosition, unsigned long int YPosition);
unsigned long int X;
unsigned long int Y;
};
#endif
C++:
//Point.cpp
#include "Point.hpp"
Point::Point(unsigned long int XPosition, unsigned long int YPosition)
{
this->X = XPosition;
this->Y = YPosition;
}
C++:
//StdFunc.hpp
#ifndef STDFUNC_HPP_
#define STDFUNC_HPP_
#include "Point.hpp"
#include "dllmain.hpp"
extern "C"
{
DllExport Point GetZeroPoint();
};
#endif
C++:
//StdFunc.cpp
#include "StdFunc.hpp"
Point GetZeroPoint()
{
return Point(0, 0);
};
In meiner Point Variable "Zero" bekomme ich beim debuggen aber folgenden Wert raus:
X 3730892 uint
Y 1831876848 uint
Bin ich zu blöd, über eine native Funktion einen Nullpunkt zu erstellen oder failt meine Anwendung einfach nur?
Gruß, JustShinigami