<DllImport("kernel32.dll", CharSet:=CharSet.Unicode, SetLastError:=True)> _ Public Shared Function CreateProcess(ByVal Optional AppplicationName As String = "", _ optional CommandLine As String = "", _ Optional ByVal ProcessAttributes As IntPtr = IntPtr.Zero, _ Optional ByVal ThreadAttributes As IntPtr = IntPtr.Zero, _ Byval InheritHandles as boolean, _ Byval CreationFlags as ProcessCreationFlags, _ Optional ByVal Enviroment as intptr = intptr.Zero, _ Optional ByVal CurrentDirectory as string = "", _ byref StartupInfo as StartupInfo, _ byref ProcessInformation as ProcessInformation) As Boolean End Function
Vika 1
Optional ByVal ThreadAttributes As IntPtr = IntPtr.Zero, _
tossa herjaa IntPtr.Zeroa (Constant expression is required)
outoo ku kelpaa edellisellä rivillä
Vika 2 (heti seuraavalla rivillä)
ByVal
"'Optional' expected"
Yhtään ideoita? Toivottavasti "hullun veeässän -tauti" ei ole kovin tarttuvaa
Joo... Kokeilin ottaa optional:t pois.
Ei enää valita... Taitaal olla VS buginen niiden osalta
Mutta jos joku keksii miten ne saa mukaan, niin hyvä on
Mahtaako olla niin, että Optional saa esiintyä vain viimeisissä parametreissa? Ainakin monissa muissa kielissä on tällainen vaatimus. Muutenhan voisi tulla epäselvyyksiä siitä, mihin parametreihin argumentit pitäisi sijoittaa:
Public Shared Function testi(Optional X As Integer = 1, Y As Integer, Optional Z As Integer = 3) ' testi(5, 6), siis testi(5, 6, 3) vai testi(3, 5, 6)
Jos tarkoituksesi on vain saada muutama parametri piiloon, voit toki tehdä oman funktion MyCreateProcess, jossa parametrit ovat toisessa järjestyksessä ja joka sitten kutsuu oikeaa funktiota.
Niinhän tuo näyttää olevan. Tuo vaan hämmästytti minua niin paljon,
koska tuo on suora käännös Visual C#:sta joka siis sallii tuollaiset
Aihe on jo aika vanha, joten et voi enää vastata siihen.