0
簡單,因爲這,運行這個指令:的衝突SystemParametersInfo簽名
NativeMethods.SystemParametersInfo(SPI.SPI_SETKEYBOARDCUES,
0UI,
True,
SPIF.None)
我需要這樣的簽名:
<DllImport("user32.dll")>
Private Shared Sub SystemParametersInfo(
ByVal uiAction As NativeMethods.SPI,
ByVal uiParam As UInteger,
ByVal pvParam As Boolean,
ByVal fWinIni As NativeMethods.SPIF)
End Sub
但要運行這個其它指令:
Dim MyBoolean As Boolean = False
NativeMethods.SystemParametersInfo(SPI.SPI_GETKEYBOARDCUES,
0UI,
MyBoolean,
SPIF.None)
。 ..當然,我需要ByRef布爾參數來檢索值:
<DllImport("user32.dll")>
Private Shared Sub SystemParametersInfo(
ByVal uiAction As NativeMethods.SPI,
ByVal uiParam As UInteger,
ByRef pvParam As Boolean,
ByVal fWinIni As NativeMethods.SPIF)
End Sub
那麼我需要如何管理這些簽名?我不能只選一個。
有一種方法可以將兩個簽名保持爲布爾值,以便不將其中一個更改爲Integer?
是的,第一條指令不能與ByRef參數一起工作,那我該如何解決這個問題?
@ElektroStudios我剛修好了。我不太流利的VB,所以我的語法錯了。 –
沒問題,thankyou它按預期工作,我學到了這個有趣的東西 – ElektroStudios
@ElektroStudios VB還支持舊的ALIAS關鍵字:'Declare Function getUserName Lib「advapi32.dll」Alias「GetUserNameA」( ByVal lpBuffer As String,ByRef nSize As Integer)Integer' Declare'和'DLLImport'可以互換,但後者是首選,因爲它提供了其他選項。編輯:很多信息! http://stackoverflow.com/a/8793709/1070452 – Plutonix