gpt4 book ai didi

class - 将 Plantronics SDK 与 Delphi 应用程序一起使用

转载 作者:行者123 更新时间:2023-12-03 18:45:03 24 4
gpt4 key购买 nike

并提前感谢您提供的任何建议/见解/帮助。

背景:

我们有一个用 Delphi (XE3) 为 Windows 编写的软电话应用程序。最近要求能够通过激活 Plantronics 无线耳机的接听按钮来接听来电。下载并执行 MSI 文件,并将 Plantronics SDK 转换/更改为 Delphi 库文件。

然后我开始关注 Plantronics 网站的“第一步”部分。我知道必须调整“第一步”代码以适应 Delphi 系统。

问题:

在调整代码以在 Delphi 中工作时,遇到并解决了一些翻译问题。一个这样的错误被证明是顽固的 - 当创建一个特定类的实例时,会抛出错误“类未注册”。

“第一步”代码供引用 -

//  Connect to the Plantronics COM API:
myAppName = "SDK .NET COM sample";
sessionManager = new COMSessionManager();
sessionManager.Register(myAppName, out session);

// Hook to SessionManager events:
sessionManagerEvents = sessionManager as ICOMSessionManagerEvents_Event;
if (sessionManagerEvents != null)
{
sessionManagerEvents.onCallStateChanged += SessionManagerEvents_onCallStateChanged;
sessionManagerEvents.onDeviceStateChanged += SessionManagerEvents_onDeviceStateChanged;
}

德尔福代码:
//Connect to the Plantronics COM API:
plugin_name: "Plugin Name";
the_session: CoCOMSession.Create;
session_manager = new COMSessionManager.Create;
session_manager.Register(plugin_name, the_session);

//Hook to Session Manager Events
state_device_event_args := CoCOMStateDeviceEventArgs.Create;
call_event_args := CoCOMCallEventArgs.Create;

Delphi Code 的最后一行是问题所在。其他三个“创建”调用顺利进行。 “call_event_args := CoCOMCallEventArgs.Create;”这一行抛出错误“类未注册”,即使它与其他三个一起在库文件中声明和实现。

库文件摘录:

类声明:
IID_ICOMStateDeviceEventArgs: TGUID = '{91542BEE-4931-4620-9E96-23AE4001E93F}';
CLASS_COMStateDeviceEventArgs: TGUID = '{335D08FD-8BB5-4EF5-964B-E8A8C010530F}';

IID_ICOMCallEventArgs: TGUID = '{0280956C-C644-4CD8-B124-C8A99E5D505E}';
CLASS_COMCallEventArgs: TGUID = '{705129C3-2265-4F10-9768-0FF8A20234C0}';

类创建函数:
//Works
class function CoCOMStateDeviceEventArgs.Create: ICOMStateDeviceEventArgs;
begin
Result := CreateComObject(CLASS_COMStateDeviceEventArgs) as ICOMStateDeviceEventArgs;
end;

// Doesn't Work
class function CoCOMCallEventArgs.Create: ICOMCallEventArgs;
begin
Result := CreateComObject(CLASS_COMCallEventArgs) as ICOMCallEventArgs;
end;

我发现的每个关于解决“未注册类”错误的教程/论坛答案都没有解决问题。

有没有人对我做错了什么有任何建议或见解?

谢谢你。

最佳答案

该问题已(可能)通过以下方式解决 -

我从教程/第一步部分错误地认为需要先创建“COMCallEventArgs”对象才能使用它。

经过进一步审查,COMCallEventArgs 对象会在以后必要时创建。

需要做更多的测试,但我相信这个问题已经解决了。

关于class - 将 Plantronics SDK 与 Delphi 应用程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42398630/

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