Russian Qt Forum
Ноябрь 23, 2024, 15:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Возврат значения из DLL  (Прочитано 2837 раз)
freestyler
Гость
« : Октябрь 17, 2011, 19:52 »

Microsoft Visual Studio 2010.

Есть DLL на C++. Формочка на VB.NET


DLL:
__declspec(dllexport) char RETURN()
{
   char a='R';
   return a;
}


форма:
Declare Auto Function RETURN Lib "RETURN.dll" () As Char

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Static L As Char
        L = CreatePrinter()
        Me.Label1.Text = L
End Sub



При нажатии на кнопку Button1 на Label1 выводится не "R", а иероглиф. Именно иероглиф. Не похож на "несоответствие кодировок", однако не исключаю такой возможности. Что выводится приложил рисунком.


Ай нид хелп! Улыбающийся

Спасибо!!
Записан
Nimbus
Гость
« Ответ #1 : Октябрь 18, 2011, 04:20 »

>L = CreatePrinter()
>Me.Label1.Text = L
И где же вызов RETURN Непонимающий
Или я в VB не шарю совсем?Улыбающийся
А насчёт кодировок... Ты собирал проект DLL в unicode-кодировке? Потому что в .net ЕМНИП всё символы в юникоде. И ещё попробуй всё-таки получить из функции Byte. Потому что в си нет различия между числовыми литералами и символьными. Если вернёт 82 (ascii-код символа R), то всё ок. Надо будет написать
L = Chr(RETURN())
« Последнее редактирование: Октябрь 18, 2011, 05:19 от JC » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 20.