Я получаю нарушение прав доступа при вызове DLL в проекте. И проект, и dll используют модуль Chart (TChart). Удалите Tchart из проекта, который LoadLibrary может успешно вернуть. Это также работает, если Tchart удален из dll. Я не понимаю, почему блок диаграммы нельзя использовать и в проекте, и в dll? И как решить эту проблему.
delphi XE: нарушение прав доступа внутри вызова LoadLibrary()
comment
Чтобы использовать его в DLL, вы должны пойти по пути Delphi и создать BPL. Которая находится под DLL, но содержит некоторый связующий код для магии компилятора Delphis.
- person 0xC0000022L   schedule 24.02.2011
comment
Нет причин, по которым TeeChart нельзя использовать в DLL.
- person David Heffernan   schedule 24.02.2011
comment
@David Heffernan Я так запутался, почему мой проект не может загрузить dll с помощью TeeChart. И я сделал простой проект, а также простую dll, не делая ничего, кроме включения TeeChart. Это все еще происходит сбой. Любое предложение?
- person Sarah Cla   schedule 24.02.2011
comment
@STATUS_ACCESS_DENIED Я не совсем понимаю ваши рекомендации. Можете ли вы рассказать мне что-нибудь еще об этом?
- person Sarah Cla   schedule 24.02.2011
comment
@Sarah Cla: см. ответ от RRUZ. Кажется, это известная проблема.
- person 0xC0000022L   schedule 24.02.2011
comment
Похоже, что RRUZ на деньги. Нет ничего плохого в TChart в DLL (как подразумевает @STATUS). Но похоже на ошибку TChart. Вот почему стоит использовать полную версию, которая поставляется с исходным кодом, и тогда вы (больше) контролируете свою судьбу.
- person David Heffernan   schedule 24.02.2011
comment
Известно, что формы/компоненты Delphi в простой DLL вызывают проблемы, в то время как BPL по-прежнему подходят для таких случаев. В противном случае вопрос на самом деле не дает достаточно подробностей;)
- person 0xC0000022L   schedule 24.02.2011
comment
@STATUS Формы/компоненты Delphi вызывают проблемы только в том случае, если вы делаете это неправильно.
- person David Heffernan   schedule 24.02.2011
comment
@STATUS Если у вас есть компоненты VCL в DLL, они должны оставаться там. Проблемы возникают, когда вы разрешаете компонентам VCL пересекать границу. Я уверен, что вы все это знаете!! ;-)
- person David Heffernan   schedule 24.02.2011
Ответы (2)
Сара, это ошибка компонента TChart, расположенного в модуле TeCanvas. сотрудники Steema знают об этом. вы можете проверить следующую тему Delphi XE, TChart in exe and in dll
на форумах embarcadero.
person
RRUZ
schedule
24.02.2011
думает над вашим ответом. Удручает, что эта проблема до сих пор не решена. Даже крайний срок нового пакета не определен
- person Sarah Cla; 25.02.2011
Я заметил эту ошибку сегодня при использовании Delphi XE и FastReport 6 VCL, когда в exe у меня есть FrxChart и в библиотеке. После долгого процесса отладки я понял, что только TeEngine, включенный в оба приложения, может вызвать сбой функции LoadLibrary(). Поскольку ссылка на форум больше не работает, могу ли я исправить эту ошибку (кроме удаления диаграмм в библиотеке)?
person
InnerWorld
schedule
25.08.2020