我的Visual Studio C ++ 2008项目在调试和发布模式下在32位平台上构建可执行文件,没有任何问题和可执行文件运行并生成预期结果。
我有一些大小超过26000行乘26000列(双类型)的矩阵,而在32位平台中,我无法为这个矩阵分配内存。因此我必须切换到64位平台。
在64位平台上,我可以构建我的可执行文件而没有任何错误(调试和释放模式),但在尝试运行可执行文件时,我在调试模式下收到以下消息:
发布模式中的以下消息:
我在调试模式中逐步完成了代码,我收到的第一条消息就是这个(发生在Microsoft COM中):
每次我点击上一条消息的继续时,我都会在名为STAADLibBentley.tli
的文件的不同位置收到不同的错误消息,如下面显示的两个作为示例:
在STAADLibBentley.tli
的顶部写下以下注释,其中显示TLB文件用于Win32,编译器正在实现TLB文件的包装器以在64位平台中使用它。
看起来这个STAADLibBentley.tli
文件是一个由编译器自动实现的包装器,与我在我的C ++代码中使用的STAADLibBentley.tlb
文件相关,并且与STAAD API,STAAD相关是一个我通过TLB库进行通信的软件。我正在使用这样的TLB文件:
现在问题是,如果编译器正在为Win32 TLB文件编写包装器以在64平台中使用它,为什么我在STAADLibBentley.tli
文件中接收上面提到的错误消息。有谁知道可能的原因是什么?
答案 0 :(得分:0)
我和熟悉STAAD软件API的人交谈时,我被告知API是32位Microsoft COM的组件而不是64位。幸运的是,在64位平台上使用32位COM有一些技巧,如下面的链接,我可以尝试一下: