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

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

не, зачем?
...
Рейтинг: 0 / 0
03.03.2005, 12:54
    #32943429
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
а если в dll нет экспортных функций ..это dll с модальной формой мне просто нужно чтобы при щелчке на меню з-аргрузилась dll и показалась ее форма*???
...
Рейтинг: 0 / 0
03.03.2005, 12:55
    #32943430
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
а хотя есть))
...
Рейтинг: 0 / 0
03.03.2005, 13:09
    #32943493
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
а как передать в dll дескриптор приложения ... вот код функции в dll
Код: plaintext
function Init_Dll(ApHandle :THandle) :Integer;
...
Рейтинг: 0 / 0
03.03.2005, 13:14
    #32943515
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
объявить функцию наверно можна так
Код: plaintext
1.
2.
DllImport("My.dll")]
extern static int Init_Dll(IntPtr ApHandle);
а вызывать так
Код: plaintext
1.
Init_Dll(Process.GetCurrentProcess().Handle )
хотя не уверен, бо не проверял..
...
Рейтинг: 0 / 0
03.03.2005, 14:59
    #32943918
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
блин достало ругаеться на директиву [DllImport]
Код: plaintext
1.
2.
3.
4.
5.
public class Ean
	{
		[DllImport("ean.dll")]
		extern static int Init_Dll(IntPtr ApHandle) ;
		
	}
...
Рейтинг: 0 / 0
03.03.2005, 15:20
    #32943994
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
ну а посмотреть из какого пространства имен DllImport что так тяжело?!
using System.Runtime.Interopp
...
Рейтинг: 0 / 0
03.03.2005, 15:39
    #32944059
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
неа не получаеться так загрузить (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
03.03.2005, 15:43
    #32944074
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
Значит IntPtr не подходит для THandle, счас глянем, что это за зверь..
...
Рейтинг: 0 / 0
03.03.2005, 15:46
    #32944084
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
хм..Longword - 4 байта, должно было бы подойти, а кодик на функции паскале мона глянуть?
...
Рейтинг: 0 / 0
03.03.2005, 15:48
    #32944092
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
Код: 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
03.03.2005, 15:56
    #32944121
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
<imho>
ApHandle - может нужен handle главного окна приложения ?
</imho>
...
Рейтинг: 0 / 0
03.03.2005, 15:57
    #32944124
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
возможно..вернее скорее всего ..а как его можно передать??
...
Рейтинг: 0 / 0
03.03.2005, 16:03
    #32944158
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
myForm.Handle или this.Handle или ... (тип IntPtr)
...
Рейтинг: 0 / 0
03.03.2005, 16:05
    #32944163
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
кузя<imho>
ApHandle - может нужен handle главного окна приложения ?
</imho>

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

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


ошибка вылетает как при передаче Process.GetCurrentProcess.Handle так и при передачи this.Hanlde (для формы)
...
Рейтинг: 0 / 0
03.03.2005, 16:25
    #32944270
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
есть, победа, вот так получилось, без всяких дескрипторов
Код: 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
03.03.2005, 16:28
    #32944289
sashenka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
сенки огромное тя))) ..все тожогромное спасибо
...
Рейтинг: 0 / 0
03.03.2005, 16:28
    #32944292
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
а что же надо передавать, чтобы не переписывать библиотеку ? может IntPtr.Zero ?
...
Рейтинг: 0 / 0
03.03.2005, 16:31
    #32944303
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите как работать с внешними dll
кузяа что же надо передавать, чтобы не переписывать библиотеку ? может IntPtr.Zero ?

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


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