+ Ответить в теме
Показано с 1 по 11 из 11

Тема: DLL

  1. #1
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях

    DLL

    возможно ли обращаться к функция любого dll??

  2. #2
    Аватар для Alan_wake Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Постоялец
    Сообщений
    948
    Поблагодарили 9 раз(а) в 9 сообщениях
    Цитата Сообщение от MRX Посмотреть сообщение
    возможно ли обращаться к функция любого dll??
    Ну у тебя есть список библиотек в настройках проекта, по-сути ты их можешь юзать, а на счёт остальных - не знаю. Ну попробуй свою либу запилить, попробовать

  3. #3
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Тебе его сигнатуры надо знать, например я создаю DLL в шарпе

    Код:
    namespace Game {
           public int Health;
    
           public class Player {
                public int Health {
                     set {
                          this.Health = value;
                     }
                     get {
                          return this.Health;
                     }
                }
           }
    }
    Настраиваем там ассембли всё такое...

    В PHP
    PHP код:
    $dot = new DOTNET("Game""Game.Player");
    $dot->Health 30;
    pre$dot->Health ); 

  4. #4
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Тебе его сигнатуры надо знать, например я создаю DLL в шарпе

    Код:
    namespace Game {
           public int Health;
    
           public class Player {
                public int Health {
                     set {
                          this.Health = value;
                     }
                     get {
                          return this.Health;
                     }
                }
           }
    }
    Настраиваем там ассембли всё такое...

    В PHP
    PHP код:
    $dot = new DOTNET("Game""Game.Player");
    $dot->Health 30;
    pre$dot->Health ); 
    отлично, я так понял в hex / блокноте их мож посмотреть? можно ли узнать какой класс что выполняет?

  5. #5
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Цитата Сообщение от MRX Посмотреть сообщение
    отлично, я так понял в hex / блокноте их мож посмотреть? можно ли узнать какой класс что выполняет?
    Всё же, это для .NET, а для Delphi там используй FFI

    PHP код:
    $FFI = new FFI("
    [lib='Game.dll']
    int GetHealth( );
    "
    );

    $int_Health $FFI->GetHealth();
    pre($int_Health); 

  6. #6
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Всё же, это для .NET, а для Delphi там используй FFI

    PHP код:
    $FFI = new FFI("
    [lib='Game.dll']
    int GetHealth( );
    "
    );

    $int_Health $FFI->GetHealth();
    pre($int_Health); 
    ошибка при подключении (dll'ка .net framework( c#)):
    Последний раз редактировалось MRX; 24.06.2018 в 16:34.

  7. #7
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Цитата Сообщение от MRX Посмотреть сообщение
    ошибка при подключении (dll'ка .net framework( c#)):
    Аллоо она не подключается......

    Я же тебе скинул код как подключается длл ки на шарпе

    PHP код:
    $dot = new DOTNET("Game""Game.Player"); 
    $dot->Health 30
    pre$dot->Health ); 
    А точнее

    new DOTNET( " DLLNAME ", "NAMESPACE.CLASS" )

  8. #8
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Аллоо она не подключается......

    Я же тебе скинул код как подключается длл ки на шарпе

    PHP код:
    $dot = new DOTNET("Game""Game.Player"); 
    $dot->Health 30
    pre$dot->Health ); 
    А точнее

    new DOTNET( " DLLNAME ", "NAMESPACE.CLASS" )
    ну эт пнт, думал еще в модулях покл

    крч, терь это (я же кинул ее в папку с проектом)
    Последний раз редактировалось MRX; 24.06.2018 в 17:53.

  9. #9
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Цитата Сообщение от MRX Посмотреть сообщение
    ну эт пнт, думал еще в модулях покл

    крч, терь это (я же кинул ее в папку с проектом)
    Не ну ты реально не видишь мои сообщения????

    Я же ясно сказал ассембли настрой

    Properties -> AssemblyInfo.cs

    Ищем строку
    Код:
    [assembly: ComVisible(false)]
    Заменяем false -> true

    Код:
    [assembly: ComVisible(true)]
    И самое главное что компилировать надо под версию .NET 3.5

  10. #10
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Всё же, это для .NET, а для Delphi там используй FFI

    PHP код:
    $FFI = new FFI("
    [lib='Game.dll']
    int GetHealth( );
    "
    );

    $int_Health $FFI->GetHealth();
    pre($int_Health); 
    Как Няшик говорил, такой метод не имеет право на жизнь(если конечно не C++).
    Смотри, например у меня есть библиотека на Delphi которая содержит функцию "func_a", которая при-этом имеет один параметр с типом String.
    Теперь я иду подключать данную библиотеку через класс FFI(уже загруженную), но вот не задача, почему-то тип String у параметра не тот который нужен. Теперь понимаешь?.

    MRX, если хочешь подключать библиотеку на Delphi, то придется грузить её через модули.
    Подробней тут - Тык.

  11. #11
    Аватар для Alan_wake Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Постоялец
    Сообщений
    948
    Поблагодарили 9 раз(а) в 9 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Не ну ты реально не видишь мои сообщения????

    Я же ясно сказал ассембли настрой

    Properties -> AssemblyInfo.cs

    Ищем строку
    Код:
    [assembly: ComVisible(false)]
    Заменяем false -> true

    Код:
    [assembly: ComVisible(true)]
    И самое главное что компилировать надо под версию .NET 3.5
    Пилю либу под целевую платформу 3.5, ComVVisible стоит true,а исключение вылетает всё равно, пробовал через FFI - пишет нет ф-ции такой, алло

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения