下面的代碼行得通。它打印成功。從char *到wchar_t的轉換問題*
wchar_t * s1 = (wchar_t *) L"INSERT INTO OE(sqltext) VALUES('this text')";
if(WriteToSQL(s1) == 0)
printf("Success"); //Success
else
printf("Failed");
我需要用戶輸入來創建動態SQL。我需要做什麼 L前綴正在做。
當我接受輸入並進行所需的轉換時,它不起作用。
char input[100];
char sql[500];
printf("Enter input string :: ");
fgets(input,100,stdin);
for(int i=0;i<100;i++)
if(input[i]==10)
input[i]=0;
strcpy(sql,"INSERT INTO OE(sqltext) VALUES('");
strcat(sql,input);
strcat(sql,"')");
wchar_t wsql[500];
MultiByteToWideChar(CP_UTF8, 0, sql, strlen(sql),
wsql, strlen(sql) + 1);
if(WriteToSQL(wsql) == 0)
printf("Success");
else
printf("Failed"); // It failed
朗conversassion但最後卻沒有工作。來自usta的十六進制內存轉儲和輸入最有用。謝謝大家的時間。
-1:把更多的精力放在一個問題上。什麼不起作用?你得到了什麼錯誤或意外的行爲。你有什麼嘗試? – 2010-11-06 12:57:02
謝謝@ Space_C0wb0y爲-1 :)。你聽不懂的東西太複雜了?看看_tmain函數體。 – Manjoor 2010-11-06 12:58:42
如果您的程序出現問題,意味着您無法編譯它,或者它的行爲不如預期。如果您無法編譯它,請發佈您收到的錯誤。如果行爲錯誤,請解釋預期行爲以及實際行爲與其不同之處。限制你發佈相關段落的代碼,而不是整個程序。 – 2010-11-06 13:01:50