powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / подскажите как работать с внешними dll
25 сообщений из 27, страница 1 из 2
подскажите как работать с внешними dll
    #32943298
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть dll написанная на делфях ... как прикрутить к c# проекту???
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943329
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде уже что-то такое спрашивали..
вообщем так...
объявляешь функцию в дельфях как экспортируемую...
кидаешь ее возле .НЕТовского ехешника
в .НЕТе импортируешь ее
Код: plaintext
1.
2.
[DllImport("My.dll")]
extern static void MyFunc(полная сигнатура ф-и)

ну и все
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943346
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сенки попробую ..так получаеться он сам ее грузил ничего не нужно типа loadlibrory и т.д.?
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943381
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sashenkaсенки попробую ..так получаеться он сам ее грузил ничего не нужно типа loadlibrory и т.д.?

не, зачем?
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943429
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если в dll нет экспортных функций ..это dll с модальной формой мне просто нужно чтобы при щелчке на меню з-аргрузилась dll и показалась ее форма*???
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943430
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а хотя есть))
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943493
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как передать в dll дескриптор приложения ... вот код функции в dll
Код: plaintext
function Init_Dll(ApHandle :THandle) :Integer;
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943515
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объявить функцию наверно можна так
Код: plaintext
1.
2.
DllImport("My.dll")]
extern static int Init_Dll(IntPtr ApHandle);
а вызывать так
Код: plaintext
1.
Init_Dll(Process.GetCurrentProcess().Handle )
хотя не уверен, бо не проверял..
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943918
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин достало ругаеться на директиву [DllImport]
Код: plaintext
1.
2.
3.
4.
5.
public class Ean
	{
		[DllImport("ean.dll")]
		extern static int Init_Dll(IntPtr ApHandle) ;
		
	}
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32943994
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а посмотреть из какого пространства имен DllImport что так тяжело?!
using System.Runtime.Interopp
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944059
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неа не получаеться так загрузить (Init_Dll(Process.GetCurrentProcess().Handle );)
валит ошибку

An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in WindowsApplication1.exe

Additional information: External component has thrown an exception.
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944074
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит IntPtr не подходит для THandle, счас глянем, что это за зверь..
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944084
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм..Longword - 4 байта, должно было бы подойти, а кодик на функции паскале мона глянуть?
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944092
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function Init_Dll(ApHandle :THandle) :Integer; {}
begin
Application.Handle := ApHandle;
FmEan := TFmEan.Create(Application);
//fmEan.FConnection.Connection := KisConnect;
Result:=1;
FmEan.ShowModal;
end;
вот код ф-и в dll
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944121
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<imho>
ApHandle - может нужен handle главного окна приложения ?
</imho>
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944124
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно..вернее скорее всего ..а как его можно передать??
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944158
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myForm.Handle или this.Handle или ... (тип IntPtr)
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944163
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кузя<imho>
ApHandle - может нужен handle главного окна приложения ?
</imho>

нет, на сколько я помню нужно передавапть именно Application.Handle - это в паскале...
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944199
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я знаю Delphi в пределах этого форума (когда задают вопрос типа "а вот в Delphi можно так ..., а как это будет на C#")

2 sashenka
давно бы уже на форуме Delphi выяснил, что за хрень должна быть в Application.Handle
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944260
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отловил ошибку, которая вылетает в длл вот текст
Код: plaintext
1.
2.
3.
Win32 Error.  Code: 1400.
Недопустимый дескриптор окна


ошибка вылетает как при передаче Process.GetCurrentProcess.Handle так и при передачи this.Hanlde (для формы)
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944270
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть, победа, вот так получилось, без всяких дескрипторов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  function  Test  : Integer ;
    var 
    f1: TForm;
    f: TextFile;
    begin 
     
     Application.CreateForm ( TForm, f);
      try 
     f1 :=TForm.Create (  Application );
     Result:= f1.ShowModal ;
     f1.free;
      except 
     on E: Exception  do 
          Begin 
           Assign(f, 'error.log');
           Rewrite( f);
           WriteLn(f, E.Message);
           CloseFile(f);
          end ;
      end  ;

    end ;
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944289
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сенки огромное тя))) ..все тожогромное спасибо
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944292
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что же надо передавать, чтобы не переписывать библиотеку ? может IntPtr.Zero ?
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944303
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кузяа что же надо передавать, чтобы не переписывать библиотеку ? может IntPtr.Zero ?

переписывать все равно надо будет, так как надо убрать Application.Handle := ApHandle; а передавать можна обыкновенный Int32 (благо он 4 байта)
...
Рейтинг: 0 / 0
подскажите как работать с внешними dll
    #32944319
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переписывать ...
надо что бы и нашим и вашим
так Application.Handle:=0 - подойдет для этих целей ?
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / подскажите как работать с внешними dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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