7 static array<int>^ IntegerManagedArray(
int* memory,
int count) {
9 throw gcnew ArgumentNullException(
"memory");
12 return gcnew array<int>(0);
14 array<int>^ arr =
gcnew array<int>(count);
16 pin_ptr<int> arrPin = &arr[0];
18 memcpy_s(arrPin, count *
sizeof(
int), memory, count *
sizeof(
int));
23 static array<int>^ LongToIntegerManagedArray(
long* memory,
int count) {
25 throw gcnew ArgumentNullException(
"memory");
29 return gcnew array<int>(0);
32 array<int>^ arr =
gcnew array<int>(count);
34 for (
int i = 0; i < count; i++) {
35 arr[i] =
static_cast<int>(memory[i]);
42 static array<std::uint32_t>^ UnsignedIntegerManagedArray(std::uint32_t* memory,
int count) {
44 throw gcnew ArgumentNullException(
"memory");
48 return gcnew array<std::uint32_t>(0);
51 array<std::uint32_t>^ arr =
gcnew array<std::uint32_t>(count);
53 pin_ptr<std::uint32_t> arrPin = &arr[0];
55 memcpy_s(arrPin, count *
sizeof(std::uint32_t), memory, count *
sizeof(std::uint32_t));
60 static array<double>^ DoubleManagedArray(
double* memory,
int count) {
62 throw gcnew ArgumentNullException(
"memory");
65 return gcnew array<double>(0);
67 array<double>^ arr =
gcnew array<double>(count);
69 pin_ptr<double> arrPin = &arr[0];
70 memcpy_s(arrPin, count *
sizeof(
double), memory, count *
sizeof(
double));
74 static array<float>^ FloatManagedArray(
float* memory,
int count) {
76 throw gcnew ArgumentNullException(
"memory");
79 return gcnew array<float>(0);
81 array<float>^ arr =
gcnew array<float>(count);
83 pin_ptr<float> arrPin = &arr[0];
84 memcpy_s(arrPin, count *
sizeof(
float), memory, count *
sizeof(
float));
88 static array<unsigned char>^ UCharManagedArray(
unsigned char* memory,
int count) {
90 throw gcnew ArgumentNullException(
"memory");
93 return gcnew array<unsigned char>(0);
95 array<unsigned char>^ arr =
gcnew array<unsigned char>(count);
97 pin_ptr<unsigned char> arrPin = &arr[0];
98 memcpy_s(arrPin, count *
sizeof(
unsigned char), memory, count *
sizeof(
unsigned char));
102 static array<char>^ CharManagedArray(
char* memory,
int count) {
104 throw gcnew ArgumentNullException(
"memory");
107 return gcnew array<char>(0);
109 array<char>^ arr =
gcnew array<char>(count);
111 pin_ptr<char> arrPin = &arr[0];
112 memcpy_s(arrPin, count *
sizeof(
char), memory, count *
sizeof(
char));
116 static String^ ToManagedString(
const char*
string)
118 return Marshal::PtrToStringAnsi((IntPtr)(
char*)
string);
121 static char* ToUnmanagedString(String^
string)
123 return (
char*)Marshal::StringToHGlobalAnsi(
string).ToPointer();
126 static const char* string_to_char_array(String^
string)
128 const char* str = (
const char*)(Marshal::StringToHGlobalAnsi(
string)).ToPointer();