У меня есть следующий код C ++ < /p>
#ifdef EXPORT_DLL
#define CfgAPI __declspec(dllexport)
#else
#define CfgAPI
#endif
struct WrkPaths
{
public:
char *WrkDir;
char *URL1;
char *URL2;
char *URL3;
};
CfgAPI int getURLFromDir(WrkPaths * pathCfg){
pathCfg->WrkDir = (char*)malloc( 5 * sizeof(char) );
strcpy( pathCfg->WrkDir , "Test");
return 0;
}
< /code>
Соответствующий код C# < /p>
using System;
using System.Runtime.InteropServices;
using System.Text;
// namespace declaration
namespace HelloWorldApp {
// Class declaration
class Geeks {
[StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct WrkPaths {
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string WrkDir;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL1;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL2;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL3;
}
[DllImport ("CfgAPI.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int getRepoURLFromDir (
ref WrkPaths wPath
);
// Main Method
static void Main (string[] args) {
// statement
// printing Hello World!
Console.WriteLine ("Hello World!");
WrkPaths wPath = new WrkPaths();
int a = getRepoURLFromDir(ref wPath);
Console.WriteLine (wPath.WrkDir.ToString ());
// To prevents the screen from
// running and closing quickly
Console.ReadKey ();
}
}
}
< /code>
На экране появляется только Hello World < /code>. Как я могу перенести данные из C/C ++ DLL на C#?
Подробнее здесь: https://stackoverflow.com/questions/615 ... to-c-sharp
Как я могу передать структуру с струнами от C ++ до C# ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1745467665
Anonymous
У меня есть следующий код C ++ < /p>
#ifdef EXPORT_DLL
#define CfgAPI __declspec(dllexport)
#else
#define CfgAPI
#endif
struct WrkPaths
{
public:
char *WrkDir;
char *URL1;
char *URL2;
char *URL3;
};
CfgAPI int getURLFromDir(WrkPaths * pathCfg){
pathCfg->WrkDir = (char*)malloc( 5 * sizeof(char) );
strcpy( pathCfg->WrkDir , "Test");
return 0;
}
< /code>
Соответствующий код C# < /p>
using System;
using System.Runtime.InteropServices;
using System.Text;
// namespace declaration
namespace HelloWorldApp {
// Class declaration
class Geeks {
[StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct WrkPaths {
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string WrkDir;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL1;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL2;
[MarshalAs (UnmanagedType.LPStr, SizeConst = 255)]
public string URL3;
}
[DllImport ("CfgAPI.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int getRepoURLFromDir (
ref WrkPaths wPath
);
// Main Method
static void Main (string[] args) {
// statement
// printing Hello World!
Console.WriteLine ("Hello World!");
WrkPaths wPath = new WrkPaths();
int a = getRepoURLFromDir(ref wPath);
Console.WriteLine (wPath.WrkDir.ToString ());
// To prevents the screen from
// running and closing quickly
Console.ReadKey ();
}
}
}
< /code>
На экране появляется только Hello World < /code>. Как я могу перенести данные из C/C ++ DLL на C#?
Подробнее здесь: [url]https://stackoverflow.com/questions/61595114/how-can-i-pass-a-struct-with-strings-from-c-to-c-sharp[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия