gpt4 book ai didi

Excel Automation with Haskell 出现段错误

转载 作者:行者123 更新时间:2023-12-01 16:25:33 29 4
gpt4 key购买 nike

我可以使用以下脚本启动 Excel。但在 ghci (7.4.1) 中,当我运行它时出现段错误。

我现在不知道该去哪里搜索。如果删除该行,则不会出现此错误

workSheets <- workBook #  propertyGet_0 "Worksheets"

这是代码。也许我忘记了什么。我读了com.hs的源代码here ,但它没有给我任何线索。

import System.Win32.Com 
import System.Win32.Com.Automation
--
-- createObjectExcel
-- coming from Automation.hs and com.hs
--

iidIDispatch_unsafe = mkIID "{00020400-0000-0000-C000-000000000046}"

createObjExl :: IO (IDispatch ())
createObjExl = do
clsidExcel <- clsidFromProgID "Excel.Application"
pExl <- coCreateInstance clsidExcel Nothing LocalProcess iidIDispatch_unsafe
return pExl


fichierTest2 = "E:/Programmation/haskell/Com/qos1.xls"

main = coRun $ do
pExl <- createObjExl
workBooks <- pExl # propertyGet_0 "Workbooks"
workBook <- workBooks # propertyGet_1 "Open" fichierTest2
workSheets <- workBook # propertyGet_0 "Worksheets"

workBooks # method_1_0 "Close" (0::Int)
pExl # method_0_0 "Quit"

mapM release [workSheets,workBook, workBooks, pExl]
<小时/>

编辑根据冈萨雷斯的建议我尝试调试,但没有出现任何信息。我在ghci中手工尝试了代码,看来罪魁祸首就是release函数。

当我在 ghci 中输入这些内容时,出现段错误:

*Main> coInitialize
*Main> pExl <- createObjExl
*Main> release pExl
0

现在,如果我点击“pExl”,我就有了一个引用。不应该设置为Null吗?

*Main> pExl
<interface pointer = 0x020844cc>

*Main> coUnInitialize
*Main> :q
leaving Ghci
Segmentation Fault/access violation ...

最佳答案

您可能会从静态函数中调用 workSheets 方法。尝试将其移出。

或者,您是否尝试过显式声明“工作表”的数据类型

WorkSheets::Int -> Int 或(无论是什么类型)。

关于Excel Automation with Haskell 出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537516/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com