gpt4 book ai didi

c++ - DDEConnect 在 Unicode 上失败

转载 作者:行者123 更新时间:2023-11-28 08:27:39 25 4
gpt4 key购买 nike

为什么 DdeConnect 在 Unicode 上失败但在 ANSI 上工作?

1) 打开Excel并输入一些虚拟数据

2) 创建示例代码以通过 DDE 从 Excel 中读取值

3) ANSI = 成功,Unicode = 失败

下面的示例代码。我每次都收到 DDE 连接失败。

WCHAR szApp[] = L"Excel";
WCHAR szTopic[] = L"C:\\Test.xlsx";
char szItem1[] = "R1C1"; char szDesc1[] = "Current Value: ";
DWORD idInst=0;
UINT iReturn;
iReturn = DdeInitialize(&idInst, (PFNCALLBACK)DdeCallback,
APPCLASS_STANDARD | APPCMD_CLIENTONLY, 0 );
if (iReturn!=DMLERR_NO_ERROR)
{
printf("DDE Initialization Failed: 0x%04x\n", iReturn);
Sleep(1500);
return 0;
}
HSZ hszApp, hszTopic;
HCONV hConv;
hszApp = DdeCreateStringHandle(idInst, (LPCWSTR)szApp, 0);
hszTopic = DdeCreateStringHandle(idInst, (LPCWSTR)szTopic, 0);
hConv = DdeConnect(idInst, hszApp, hszTopic, NULL);
DdeFreeStringHandle(idInst, hszApp);
DdeFreeStringHandle(idInst, hszTopic);
if (hConv == NULL)
{
printf("DDE Connection Failed.\n");
Sleep(100); DdeUninitialize(idInst);
return 0;
}

最佳答案

你在 Unicode 模式下 DDEInitialize 了吗? DDEInitialize 和 DDEConnect 模式必须匹配。因此,如果您尚未定义 UNICODE,则必须在 CP_WINUNICODE 模式下指定 DDEConnect 之前显式调用 DDEInitializeW。这就是我阅读文档的方式。

关于c++ - DDEConnect 在 Unicode 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3360290/

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