在Cbuilder中使用Delphi组件链接错误

发布于 2024-12-15 14:27:42 字数 544 浏览 1 评论 0原文

我从这里下载了“Wave Audio Package”VCL组件 http://www.delphiarea.com/downloads/,该组件包适用于 Delphi,我需要从 CBuilder 端使用它(我正在使用 RAD Studio XE),在调整 dproj 的设置之后(在 C++ 输出文件生成中,我设置为“生成所有 C++ Builder 文件”) (包括包库)”)我设法让 VCL 组件在 CBuilder 端工作。

但仍然存在问题,我无法使用它的“全局”函数(在命名空间 Waveutils:: 下),例如 Waveutils::SetPCMAudioFormatS、Waveutils::GetWaveAudioFormat 等。编译过程很好,但有链接问题说即使我添加了库“WA2010.lib”(当我从 delphi 端构建组件时生成),链接器也无法找到该函数的引用。我已经使用 TDUMP 转储了 WA2010.lib,它似乎包含函数的代码。

我是否缺少任何步骤?预先感谢您的任何帮助。

I downloaded "Wave Audio Package" VCL Component from here http://www.delphiarea.com/downloads/, the component package is for Delphi and I need to use it from CBuilder side (I'm using RAD Studio XE), after a setting tweaking the dproj (in C++ output file generation I set to "Generate all C++ Builder files (including package libs)") I managed to get VCL components working in CBuilder side.

But there're still problems, I can't use it's 'global' function (under namespace Waveutils::) such as Waveutils::SetPCMAudioFormatS, Waveutils::GetWaveAudioFormat, etc. The compiling process was fine, but there were link problem said that the linker cannot find reference for that function, even after I added library 'WA2010.lib' (which is generated when I built the component from delphi side). I have dumped the WA2010.lib using TDUMP, it seems that it contains code for the functions.

Are there steps that I'm missing ? Thanks in advance for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

憧憬巴黎街头的黎明 2024-12-22 14:27:42

如果组件是开源的,请将它们用作动态实例化。
记住:

不要在 C++ Builder 中安装组件!

这是邪恶的。
将组件单元添加到您的应用程序并实例化:

TWaveComponent *waveComponent; // in global scope

//in form constructor:
waveComponent = new TWaveComponent(Owner); 
waveComponent->property1 = value1;
waveComponent->property2 = value2;
waveComponent->OnEvent = myEventHandler;
...

If components are opensource use them as Dynamic Instantiate.
Keep in mind:

do not install components in C++ Builder!

it is evil.
Add component units to your application and instantiate:

TWaveComponent *waveComponent; // in global scope

//in form constructor:
waveComponent = new TWaveComponent(Owner); 
waveComponent->property1 = value1;
waveComponent->property2 = value2;
waveComponent->OnEvent = myEventHandler;
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文