PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Программирование на PureBasic » Процедуры


Процедуры

Сообщений 31 страница 38 из 38

31

Нельзя просто так добратся до памяти другой проги.
МелкоМягкие считают что это повышает безопасность и стабильность работы приложений.
Именно по этой причине, прежде чем использовать память, её нужно выделить с помощью AllocateMamory.

Вообще-то из памяти "чужой" проги, можно получить данные, например, как сденно здесь http://purebasic.info/phpBB2/viewtopic.php?t=686

0

32

но ведь в с DLL (выделение мышью, которую мы недавно доводили до ума), мы залезли в память без танцев с бубном.

0

33

DLL пренадлежала тому-же процесу что и EXE.
А тут два разных процесса!

0

34

Пётр написал(а):

Вообще-то из памяти "чужой" проги, можно получить данные, например, как сденно здесь http://purebasic.info/phpBB2/viewtopic.php?t=686

За это Петр спасибо тебе и Виталию(kvitaly). Рано или поздно я бы подошел близко к этому вопросу. Всегда интересовало как работают программы типа Artmoney

0

35

Как через DLL передавать связанный список  ?
Не могу врубится.

Код:
Structure my_list
  n.l   ;номер
  name.s  ;имя
  url.s   ;адрес
EndStructure

Global NewList my_list.my_list()



ProcedureDLL Function1()

    AddElement(my_list())
           
      my_list()\n    =1
      my_list()\name ="Аниме"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%90%D0%BD%D0%B8%D0%BC%D0%B5" 

    AddElement(my_list())
 
      my_list()\n    =2
      my_list()\name ="Биография"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%B8%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F"

    AddElement(my_list())
 
      my_list()\n    =3
      my_list()\name ="Боевик"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%BE%D0%B5%D0%B2%D0%B8%D0%BA"
 
 
EndProcedure

0

36

Попробуй так:

Код:
Structure my_list
  n.l   ;номер
  name.s  ;имя
  url.s   ;адрес
EndStructure

;Global NewList my_list.my_list()



ProcedureDLL Function1(List my_list.my_list())

    AddElement(my_list())
           
      my_list()\n    =1
      my_list()\name ="Аниме"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%90%D0%BD%D0%B8%D0%BC%D0%B5" 

    AddElement(my_list())
 
      my_list()\n    =2
      my_list()\name ="Биография"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%B8%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F"

    AddElement(my_list())
 
      my_list()\n    =3
      my_list()\name ="Боевик"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%BE%D0%B5%D0%B2%D0%B8%D0%BA"
 
 
EndProcedure

Не знаю будет ли работать при передаче в DLL, но просто в коде, все нормально работает.

0

37

Так должно быть ? не работает...

Код:
Structure my_list
  n.l   ;номер
  name.s  ;имя
  url.s   ;адрес
EndStructure

Global NewList my_list.my_list()



ProcedureDLL Function1(List my_list.my_list())



    AddElement(my_list())
           
      my_list()\n    =1
      my_list()\name ="Аниме"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%90%D0%BD%D0%B8%D0%BC%D0%B5" 

    AddElement(my_list())
 
      my_list()\n    =2
      my_list()\name ="Биография"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%B8%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F"

    AddElement(my_list())
 
      my_list()\n    =3
      my_list()\name ="Боевик"
      my_list()\url  ="http://fs.ua/video/films/?gfl=film_genre&search=%D0%91%D0%BE%D0%B5%D0%B2%D0%B8%D0%BA"
 
 
EndProcedure


;***************************Вызов******************************



Structure my_list
  n.l   ;номер
  name.s  ;имя
  url.s   ;адрес
EndStructure

Global NewList my_list.my_list()




If OpenLibrary(1,"DLL.dll")
  

Prototype Function1(List my_list.my_list())
Function1.Function1 = GetFunction(1, "Function1")

Function1(my_list.my_list())

          ForEach my_list() ; В цикле сканирется динамически связанный список
           If my_list()\n= 1
           
             Debug  my_list()\name
             Debug  my_list()\url

           EndIf
         Next

 CloseLibrary(1) ; Закрытие динамической библиотеки подпрограмм.
EndIf

Отредактировано mirashic (13.01.2012 15:06:24)

0

38

Спасибо разобрался, заработало...

0


Вы здесь » PureBasic - форум » Программирование на PureBasic » Процедуры