New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GraphABCHelper: Приведение типа указателя к integer (int32) вместо Int64 вызывает Exception в Linux #2801
Comments
|
Посмотрите, может поможет.
|
Нуок, только теперь не понятно где вы нашли исключение - я вижу только краш среды выполнения .Net (среды от mono в данном случае) |
не понятно, почему изначально использовался integer вместо IntPtr, и не только в этой функции. Будем править? |
Не только тут, мне кажется изначально многое делалось без расчёта на 64-битные системы. Вот пример получше:
Что касается тут - я лично считаю что мне лучше вложить усилия во что то типа У меня есть своя ветка в форке, со своим батником для билда. P.S. Забыл сказать, в том батнике |
Так и есть. Исправим на int64 - и на старых 32 разрядных системах всё перестанет работать. Есть другие варианты исправления? |
Тогда использовать предопределенные для платформы типы IntPtr и HWND |
С чего вдруг? На 32-битных компах будет медленнее, но сломаться от этого ничего не может. |
Нет, сделайте исправление и оттестируйте - я это прошу. Вы уже переключились - а мне - переключаться и вникать. К тому же - я не пойму - после этой правки будет работать ABCObjects в Linux или нет? |
еще раз -- надо GetView другую. |
Конечно крайне жедательно чтобы GetView была общей для win и Linux. Но если не бедет получаться, то можно разные |
измененная работает на обеих платформах. |
Давайте подведем итог. Новый GetView будет или мне просто поменять на int64 и закрыть issue? |
Вроде готовил ответ, но видимо не отправил.... В ImageIntersect используется системноопределяемый тип IntPtr.
|
Ну то есть, можно заменить эти две функции и всё будет работать? |
всё так |
Ниже приведены изменения, которые устраняют данный Exception под Linux и работает под Windows
pascalabcnet/bin/Lib/GraphABCHelper.pas
Line 80 in ccbf5c8
iptr1,iptr2: int64;
pascalabcnet/bin/Lib/GraphABCHelper.pas
Line 88 in ccbf5c8
iptr1 := int64(ptr1);
pascalabcnet/bin/Lib/GraphABCHelper.pas
Line 92 in ccbf5c8
iptr2 := int64(ptr2);
The text was updated successfully, but these errors were encountered: