![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.08.2011
Сообщений: 40
|
![]()
Решил изучить механизм создания/подключения DLL. Написал 2 небольших функции, которые считают, соответственно, количество сочетаний из n по k и на этой основе вычисляют биномиальные коэффициенты для выражения (x + y)^n при заданном n.
Сделал две версии использования функций: 1) DLLIMPRT выключен - реализация функций берется из файла с основной программой; 2) DLLIMPRT включен - реализация берется из DLL. Далее идет код основной программы и код DLL: Код:
Код:
Код:
Кто объяснит, в чем дело? Это один из моих первых опытов создания DLL и - такой косяк... Примечание: при подключении обычного unit'a с функциями все работало без вопросов. Примечание 2: использую RAD Studio 2010. Последний раз редактировалось alexdelphi; 29.01.2012 в 20:24. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Проверил на Delphi 6
Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 29.01.2012 в 20:42. |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.08.2011
Сообщений: 40
|
![]()
Со включенным DLLIMPRT?
|
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я твой код один-в-один скопипастил.
Впрочем перепроверил еще раз радикальнее: Код:
Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 24.08.2011
Сообщений: 40
|
![]()
Спасибо... попробую взять Delphi 7
|
![]() |
![]() |
![]() |
#6 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
в Делфи 20хх импорт директив осуществляется через окно свойств проекта. Ctrl+Shift+F11. Delphi Compiler -> Conditional Defines
P.S. И ничего брать не нужно, просто более детально изучить вопрос.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Может где старый вариант DLL валяется? И именно он используется?
В самом коде ошибок нет, от версии Delphi это точно не может зависеть.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#9 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Писал я недавно проект, в котором модуль аппаратной защиты лицензии использовал разные директивы. В зависимости от сочетания директив задействовались те или иные возможности (генерация ключа, шифрование/расшифрование и проверка ключа, поиск всех hwid и построение списка и т.п.). Так вот, по моим наблюдениям и результаттам тестирования директива $define, объявленная в dpr-файле или где-лbбо в коде, не работает. Но если объявить ее в опциях проекта, то действие от нее включается.
З.Ы. в Д7 и более ранних можно было просто указать в проекте директиву. А в новых версиях, видимо, уже нельзя. директивы при том, что ТС их использует для переключения в коде при компиляции: либо модуль, либо длл. Ошибка скорее в том, что нужно директиву указать так, как я написал. В противном случае имеется неявный конфликт имен функций. Если в чем не прав, поправьте меня и мои мысли.
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 29.01.2012 в 22:05. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Директива действует от момента объявления и ниже (т.е. директива в dpr файле не влияет на модули - поэтому и используют {$I defines.inc}). Директива в опциях проекта работает глобально.
Как несложно увидеть: в этом случае - без разницы.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странный результат. | Демик | Помощь студентам | 1 | 21.10.2011 21:06 |
Использование функций в C++ из DLL. | VintProg | Общие вопросы C/C++ | 5 | 04.09.2011 03:02 |
Инициализация мыши странный результат | X@OC | Общие вопросы C/C++ | 1 | 13.04.2011 19:02 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |
что за странный результат? | marina15056 | Общие вопросы Delphi | 18 | 03.10.2009 22:09 |