Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi OmniThreadLibrary C++;构建器构建问题_Delphi_C++builder_Omnithreadlibrary - Fatal编程技术网

Delphi OmniThreadLibrary C++;构建器构建问题

Delphi OmniThreadLibrary C++;构建器构建问题,delphi,c++builder,omnithreadlibrary,Delphi,C++builder,Omnithreadlibrary,我一直试图让OnnthRead库运行在Builder中,我用它所建的所有C++所需文件构建了它,但是当我在C++ Builder应用程序中使用它时,我得到了一组错误消息,看起来像下面的 [bcc32错误]DSiWin32.hpp(385):E2040声明错误终止 其中一个指向生成的hpp文件中的这一行代码 静态常量System::Int8 CSIDL\u ADMINTOOLS=System::Int8(0x30) 有没有人在C++ Builder中工作过,或者知道解决这些问题的最佳方法< /P>

我一直试图让OnnthRead库运行在Builder中,我用它所建的所有C++所需文件构建了它,但是当我在C++ Builder应用程序中使用它时,我得到了一组错误消息,看起来像下面的

[bcc32错误]DSiWin32.hpp(385):E2040声明错误终止

其中一个指向生成的hpp文件中的这一行代码

静态常量System::Int8 CSIDL\u ADMINTOOLS=System::Int8(0x30)

有没有人在C++ Builder中工作过,或者知道解决这些问题的最佳方法< /P>

我使用C++ Builder Stand和OnnthRead Load版本3.06

Win32 API(和Delphi,就此已经声明<代码> csiLdAdMinToos),OMNI根本不应该声明它。它应该使用Delphi的

Shlobj
单元

Win32 API使用
\define
语句声明
CSIDL\u ADMINTOOLS

#define CSIDL_ADMINTOOLS 0x0030
因此,在OMNI的<代码>中,HP< <代码>的声明被C++预处理器修改为:

static const System::Int8 0x0030 = System::Int8(0x30);
因此,“声明错误终止”编译器错误

当Delphi代码声明C++中已经存在的东西时,需要声明为一个或避免重复声明,然后可选地使用一个生成的<代码> .HPP文件中输出相关的<代码> >包含< /Cord>语句。Delphi的单元已经为其Win32声明实现了这一点


如果Omni还没有这样做(错误提示它没有),那么它需要相应地更新。

Hi Remy。谢谢,现在我已经通过对他们的评论让它工作起来了。看起来他们做了一些,但我想不是全部。@Shaun07776你应该向Omni作者提交一份错误报告。是的,我会的。我不认为他们每个报告都支持C++ Builder,但看起来工作正常。我提前提出了一些其他问题,然后我将把这些问题提出来。谢谢你的帮助,我已经提出了这个问题,详情请参阅链接为什么投票被否决?