2013-08-16 74 views
0

我想將整數作爲字符串緩衝區發送到使用WriteFile的串行端口。該數據值是來自傳感器的結果,該數據最多有2個字符。如何使用用於串行端口的WriteFile將字符串作爲字符串發送

我試圖用itoa

轉換例如:

DWORD nbytes; 
int a,b,c; 
a=10; 
char *tempa =""; 
tempa = itoa(a, tempa,0); 
if(!WriteFile(hnd_serial, a, 2, &nbytes, NULL)){MessageBox(L"Write Com Port fail!");return;} 

此代碼不能正常工作。

Unhandled exception at 0x1024d496 (msvcr100d.dll) in ENVSConfig.exe: 0xC0000094: Integer division by zero. 

而且我已經試過建議從以下網站: convert int to string但仍然沒有工作,。

有沒有什麼線索可以做到這一點?

回答

1

你沒有正確使用itoa,你需要爲你的字符串分配空間,你需要提供一個合適的基數(這是發生零分錯誤的地方),最後你需要使用緩衝區,而不是您原來的a值,作爲您寫入的緩衝區。

嘗試以下操作:

DWORD nbytes; 
int a,b,c; 
a = 10; 
char tempa[64]; // Randomly picked 64 characters as the max size 
itoa(a, tempa, 10); 
if(!WriteFile(hnd_serial, tempa, 2, &nbytes, NULL)) 
{ 
    MessageBox(L"Write Com Port fail!"); 
    return; 
} 
+0

謝謝你救我的天 – Limavolt

相關問題