通常,在PC上,有一些非標準的COM端口可供終端仿真器使用。我希望能夠掃描端口COM1-COM32以查看哪些(如果有)這些端口可以作爲串行端口打開。我可以這麼做,只需在所有這些端口上調用CreateFile()即可;然而,我實際上必須暫時打開/關閉(並影響DTR/RTS)端口。我可以檢查一下COM端口是否可以在沒有打開的情況下打開嗎?
我想爲可用端口的用戶提供一個準確的列表。問題是我不想影響當前未被使用的端口的DTR/RTS線,因爲可能有硬件連接到那些不希望在DTR/RTS上看到任何轉換的端口。
有沒有辦法只問這個問題:「CreateFile()會成功嗎?」在指定的COM端口?
我在這裏知道的唯一一個是GetDefaultCommConfig(),雖然API足夠簡單,但我還沒有能夠得到這個返回成功迄今。有一個竅門嗎?它只是一個字符串,後面是一個指向結構的指針,後面跟着一個指向填充大小值(結構體)的指針。似乎很簡單,但我無法實現它的工作。 謝謝, – 2009-06-04 21:20:54
我使用的代碼片段如下...如果您發現錯誤,請大聲呼喊! :-) void somefunc(void) COMMMONFIG cc; DWORD bsize = sizeof(COMMCONFIG);如果(GetDefaultCommConfig(「COM1」,&cc,&bsize)== 0){0} ShowLastError(「GetDefaultCommConfig()」); return; } ... } – 2009-06-04 21:24:45