powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получить результат (HRESULT) функции из С++ dll в коде C#
4 сообщений из 4, страница 1 из 1
Получить результат (HRESULT) функции из С++ dll в коде C#
    #38409578
yarik_tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Есть DLL на C++, в ней функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
void MtpSharp::Storage::Read(String^ fileName) {
	IWMDMStorage4* storage = TO_POINTER(pStorage, IWMDMStorage4);
	IWMDMStorageControl* storageControl;

	WCHAR* tekst = TO_WCHAR_STRING(fileName);

	HRESULT hr = storage->QueryInterface(IID_IWMDMStorageControl, (void**)&storageControl);
	if(SUCCEEDED(hr)) {
		hr = storageControl->Read(WMDM_MODE_BLOCK | WMDM_CONTENT_FILE, tekst, NULL, NULL);
		if(FAILED(hr)) {
			cout << "0x" << hex << hr << endl;
			throw gcnew Exception("probleem bij schrijven");
		}
	}
	else
		throw gcnew Exception("probleem bij schrijven");

	//resources terug vrijgeven
	Marshal::FreeHGlobal(IntPtr(tekst));
}




Вопрос как получить результат выполнения этой функции в C#? (интересует параметр "tekst")


Добавил Ref на библиотеку.


Код C#:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
private DeviceManager manager;

private void Form1_Load(object sender, EventArgs e)
        {
            manager = new DeviceManager();
            foreach (Device device in manager) {
                comboBox1.Items.Add(device.Name);
            }
        }

........


private void GetResult(Storage parentStorage) 
{
            foreach (Storage storage in parentStorage)
            {                          
                     storage.Read(storage.ToString());  --- КАК ПОЛУЧИТЬ РЕЗУЛЬТАТ?              
            }            
}
...
Рейтинг: 0 / 0
Получить результат (HRESULT) функции из С++ dll в коде C#
    #38409632
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не знаток плюсов, но void как бы намекает... и связь между "Получить результат (HRESULT)" и "параметр "tekst"" то же неясна...
...
Рейтинг: 0 / 0
Получить результат (HRESULT) функции из С++ dll в коде C#
    #38409663
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yarik_tv, в таком виде значение tekst никак не получить т.к. ты выделяешь под него память с помощью TO_WCHAR_STRING, а затем освобождаешь через Marshal::FreeHGlobal. Если нужно возвращать это значение наружу то поменяй void на String^ и перепиши код. Если непонятно как именно то спроси на форуме по C++.
...
Рейтинг: 0 / 0
Получить результат (HRESULT) функции из С++ dll в коде C#
    #38409724
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yarik_tv
Код: plaintext
1.
String^ 


Это не c++ это менеджед с++
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получить результат (HRESULT) функции из С++ dll в коде C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]