Pourquoi est-ce que DdeConnect échoue sur Unicode mais fonctionne encore sur ANSI?DDEConnect échoue sur Unicode
1) Ouvrez Excel et entrez des données fictives
2) Créer un exemple de code pour lire la valeur à partir d'Excel via DDE
3) ANSI = Succès, Unicode = FAIL
Exemple de code ci-dessous . Je reçois la connexion DDE a échoué à chaque fois.
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;
}
pourriez-vous montrer comment vous initialisez la structure CONVCONTEXT? (le code est toujours bon à afficher) –