Pascal Lazarus在Windows上编译程序后引发异常类
我用Lazarus Pascal编写了程序。它完全是在Mac上编写的,然后我切换到windows,重新编译它(将.dylib重新编译为.dll,重新编译并安装自定义组件),然后它运行,但当我尝试执行任何操作时,它会抛出错误: 在调试模式下:Pascal Lazarus在Windows上编译程序后引发异常类,pascal,lazarus,Pascal,Lazarus,我用Lazarus Pascal编写了程序。它完全是在Mac上编写的,然后我切换到windows,重新编译它(将.dylib重新编译为.dll,重新编译并安装自定义组件),然后它运行,但当我尝试执行任何操作时,它会抛出错误: 在调试模式下: Project project1引发异常类“External:SIGSEGV”。地址为772CD4F1 正在运行.exe文件: 访问冲突。 //编辑 我注意到这部分代码有问题,尤其是在列表视图中。清除命令: procedure AddressList.upd
Project project1引发异常类“External:SIGSEGV”。地址为772CD4F1
正在运行.exe文件:
访问冲突。
//编辑
我注意到这部分代码有问题,尤其是在列表视图中。清除命令:
procedure AddressList.updateView(ListView : TListView);
var
element : ListElement;
newItem : TListItem;
begin
ListView.Clear;
element := first;
if element = nil then
exit;
while element <> nil do
begin
newItem := ListView.Items.Add;
newItem.Caption := element^.name;
newItem.SubItems.Add(element^.surname);
newItem.SubItems.Add(element^.address);
newItem.SubItems.Add(formatNumber(element^.phoneNumber));
element := element^.next;
end;
end;
procedure AddressList.updateView(ListView:TListView);
变量
元素:ListElement;
新项目:TListItem;
开始
ListView.Clear;
元素:=第一;
如果元素=nil,则
出口
而元素nil do
开始
newItem:=ListView.Items.Add;
newItem.Caption:=元素^.name;
newItem.SubItems.Add(元素^.姓氏);
newItem.SubItems.Add(element^.address);
添加(formatNumber(元素^.phoneNumber));
元素:=元素^.next;
结束;
结束;
这怎么可能,我会做错什么呢?在免费的Pascal类中,实例总是隐式指针
由于某种原因,ListView
似乎不包含正确创建的类实例。“指针”ListView
指向任何地方。当class方法Clear
尝试访问数据时,会出现分段错误
查看列表视图
应该显示垃圾数据或免费Pascal类中的
,实例总是隐式指针
由于某种原因,ListView
似乎不包含正确创建的类实例。“指针”ListView
指向任何地方。当class方法Clear
尝试访问数据时,会出现分段错误
查看列表视图
应该显示垃圾数据或免费Pascal类中的
,实例总是隐式指针
由于某种原因,ListView
似乎不包含正确创建的类实例。“指针”ListView
指向任何地方。当class方法Clear
尝试访问数据时,会出现分段错误
查看列表视图
应该显示垃圾数据或免费Pascal类中的
,实例总是隐式指针
由于某种原因,ListView
似乎不包含正确创建的类实例。“指针”ListView
指向任何地方。当class方法Clear
尝试访问数据时,会出现分段错误
查看列表视图
应该显示垃圾数据或
第一个来自哪里?动态链接库?它看起来像一个单独列出的列表。你试过调试吗?(使用堆栈跟踪查找错误的来源)。您是否尝试调试dll(对于dll:运行参数,定义主机应用程序,以便可以与源代码同步调试)?@BBaz首先来自AddressList类。我注意到,当我将ShowMessage
放在ListView之前。清除之后,只有在消息显示之前,才会发生错误。我不认为它与.dllTry有什么关系,先在没有DLL的情况下调试它,然后把它编译成一个应用程序?动态链接库?它看起来像一个单独列出的列表。你试过调试吗?(使用堆栈跟踪查找错误的来源)。您是否尝试调试dll(对于dll:运行参数,定义主机应用程序,以便可以与源代码同步调试)?@BBaz首先来自AddressList类。我注意到,当我将ShowMessage
放在ListView之前。清除之后,只有在消息显示之前,才会发生错误。我不认为它与.dllTry有什么关系,先在没有DLL的情况下调试它,然后把它编译成一个应用程序?动态链接库?它看起来像一个单独列出的列表。你试过调试吗?(使用堆栈跟踪查找错误的来源)。您是否尝试调试dll(对于dll:运行参数,定义主机应用程序,以便可以与源代码同步调试)?@BBaz首先来自AddressList类。我注意到,当我将ShowMessage
放在ListView之前。清除之后,只有在消息显示之前,才会发生错误。我不认为它与.dllTry有什么关系,先在没有DLL的情况下调试它,然后把它编译成一个应用程序?动态链接库?它看起来像一个单独列出的列表。你试过调试吗?(使用堆栈跟踪查找错误的来源)。您是否尝试调试dll(对于dll:运行参数,定义主机应用程序,以便可以与源代码同步调试)?@BBaz首先来自AddressList类。我注意到,当我将ShowMessage
放在ListView之前。清除之后,只有在消息显示之前,才会发生错误。我不认为它与.dllTry有什么关系,先在没有DLL的情况下调试它,将它编译成一个应用程序。谢谢你的回答。幸运的是,我不需要这样做,因为我发现我只能在Mac上做。无论如何,谢谢你。谢谢你的回答。幸运的是,我不需要这样做,因为我发现我只能在Mac上做。无论如何,谢谢你。谢谢你的回答。幸运的是,我不需要这样做,因为我发现我只能在Mac上做。无论如何,谢谢你。谢谢你的回答。幸运的是,我不需要这样做,因为我发现我只能在Mac上做。无论如何,谢谢你。