purebasic.info

PureBasic forum
Текущее время: Вт сен 26, 2017 3:50 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
СообщениеДобавлено: Пт окт 24, 2014 4:10 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 80 раз.
Пункты репутации: 24
1. Либы нужно компилить заново при выходе новых версий пурика (либы, скомпилированные в 4.6, в 5.0 не запустятся никак).
2. При использовании либы, а не инклуда реакция антивирусов хуже. Возьмём два кода. Первый:
Код:
1
Debug GetComputerName() ;Функция из либы Друпии


Второй:
Код:
1
2
3
4
5
6
7
8
ProcedureDLL.s GetComputerName2() ; Эта функция находится в инклуде
  taille.l=100
  ComputerName.s=Space(taille)
  GetComputerName_(@ComputerName,@taille)
  ProcedureReturn ComputerName
EndProcedure
 
Debug GetComputerName2()



Вирустотал - 1 (6/53) - https://www.virustotal.com/ru/file/1dbfd34be055e92c4cdcfccdc5e1e26bd0669079c545e73d58965b101ea8ab9d/analysis/1414156036/
Вирустотал - 2 (1/51) - https://www.virustotal.com/ru/file/27d40c0a4c2283bafa79662ee3dc470139cf3021f9b010e985162e22b37b78f9/analysis/1414156060/

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн окт 27, 2014 7:16 am 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 205
Благодарил (а): 29 раз.
Поблагодарили: 21 раз.
Пункты репутации: 0
Конечно лучше хранить в инклудах, всегда можно подправить, если что, я вообще не вижу смысла в юзерлибах (при условии что исходник на пурике), ладно если-бы он компилировал долго, а так вообще никакого смысла (ну разве что скрыть исходник при распространении, а для себя, или в опенсорс, так нафиг не надо).


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн окт 27, 2014 3:31 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 763
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
Цитата:
а для себя, или в опенсорс, так нафиг не надо).
для себя же как раз удобно, подсказки к функциям, указывать пути не надо. :D
тайлбите на Линуксе помочь никто не может?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 28, 2014 4:14 pm 
Не в сети
ассистент

Зарегистрирован: Чт сен 02, 2010 12:06 am
Сообщений: 11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
для себя же как раз удобно

Именно


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 28, 2014 4:52 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 763
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
Цитата:
тайлбите на Линуксе помочь никто не может?
а что с этим то и еще Лакомет где?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 25, 2017 11:05 am 
Не в сети
доцент

Зарегистрирован: Ср апр 28, 2010 4:02 pm
Сообщений: 46
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Меня один вопрос мучает. А что на счёт создания UserLibs не из под Пурика, а например из под Visual Studio?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 25, 2017 12:33 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11014
Благодарил (а): 4 раз.
Поблагодарили: 368 раз.
В дистрибутиве есть папка "SDK\VisualC\".

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 25, 2017 5:44 pm 
Не в сети
доцент

Зарегистрирован: Ср апр 28, 2010 4:02 pm
Сообщений: 46
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Спасибо. А можно подробнее узнать про то как это должно работать?
В этой папке есть очень краткая инструкция, в которой говорится что нужно:
1) Иметь VisualC++, можно Express
2) Иметь UnxUtils (http://unxutils.sourceforge.net/UnxUpdates.zip)
3, 4) Отредактировать и запустить PureLibraries.cmd который лежит в той же папке

А как действовать дальше?
На что должны указывать ссылки в PureLibraries.cmd? (у меня VS Community 2017) И что должно получиться в итоге.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс июл 30, 2017 6:26 pm 
Не в сети
доцент

Зарегистрирован: Ср апр 28, 2010 4:02 pm
Сообщений: 46
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Нашёл на англоязычном форуме руководство Userlib in Microsoft Visual C++ 6.0 от A.I http://www.purebasic.fr/english/viewtopic.php?t=17941
Ещё не опробовал, но вроди всё просто.
Приведу несколько пунктов:
1) Создаём новый проект как переносную библиотеку DLL
2) Чтобы отладчик пурика работал корректно, опишем функцию:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
char *PB_DEBUGGER_ErrorDescription;
HWND  PB_DEBUGGER_Window;
int  PB_DEBUGGER_Control;
 
void SendDebuggerError(char*);
 
void SendDebuggerError(char *text)
{
   if (PB_DEBUGGER_ErrorDescription == 0)
   {
      PB_DEBUGGER_ErrorDescription = text;
      PB_DEBUGGER_Control = 2; // Halt the PureBasic program flow...
      SendMessage(PB_DEBUGGER_Window, WM_COMMAND, 6, 1);
   }
}
 


3)Все внешние функции должны быть обьявлены как __stdcall (viewtopic.php?f=1&t=4734)
Код:
1
2
3
4
5
6
7
8
9
10
 
extern "C" int _stdcall PB_HelloWorld(int x)
{
   return x*2;
}
 
extern "C" void PB_HelloWorld_DEBUG(int x)
{
}
 


4)Скомпилированную бибилотеку DLL нужно преобразовать в бибилотеку пурика посредством LibraryMaker из PureBasic\SDK


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB