Почему DdeConnect не работает на Unicode, но все еще работает на ANSI?
1) Откройте Excel и введите несколько фиктивных данных
2) Создать пример кода для чтения значения из Excel через DDE
3) ANSI = успех, Unicode = FAIL
Пример кода ниже. Я получаю DDE Connection Failed каждый раз.
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;
}