나는 pInvokes의 팬이 아니지만 나는 이것에 대해 다른 선택의 여지가 없다고 생각한다. vb.net에서 메모리 매핑 된 파일의 크기를 조정해야한다. 어쨌든, 나는이의 PInvoke pinvoke.net에서 서명을 가지고 :CreateFileMapping을 pInvoke하려면 무엇이 필요합니까?
<DllImport("kernel32.dll", SetLastError:= true, CharSet:= CharSet.Auto)> _
public Function CreateFileMapping(_
hFile as intptr, _
lpFileMappingAttributes As IntPtr , _
flProtect As FileMapProtection, _
dwMaximumSizeHigh As UInteger, _
dwMaximumSizeLow As UInteger, _
lpName As <MarshalAs(UnmanagedType.LPTStr)> string) as IntPtr
End Function
Public Enum FileMapProtection As UInteger
PageReadonly = &H2
PageReadWrite = &H4
PageWriteCopy = &H8
PageExecuteRead = &H20
PageExecuteReadWrite = &H40
SectionCommit = &H8000000
SectionImage = &H1000000
SectionNoCache = &H10000000
SectionReserve = &H4000000
End Enum
내가 가져온 System.Runtime.InteropServices을하지만 난 말았 < MarshalAs에서 오류가 발생합니다. 내가 무엇을 놓치고 있는지 또는 어디에서 왔는지 전혀 모른다. 이 참조가 어느 곳에도 의존성을 언급하지 않은 방법을 당신이 싫어하지 않습니까? 마찬가지로 내가 자발적으로 어떤 라이브러리 또는 프레임 워크 분기에서 왔는지 알고 있어야합니다. 대개 MSDN의 왼쪽 트리를 보면 알 수 있지만 이번에는 그 명령에 대한 직접적인 참조를 찾을 수 없습니다.
"오류가 발생했습니다."== 도움이되지 않습니다. – ken2k
사람들이 "나는 오류가있다"고 말하면서 그들이 겪을 수있는 정확한 오류를 제공하기를 거절하고, 그들이 볼 수는 있지만, 다른 누구도 볼 수는 없다는 것을 당신이 싫어할 필요는 없습니다. 사람들이 당신이 그들의 마음을 읽을 것을 기대할 때 당신은 그것을 싫어하지 마십시오. 그냥 선생님. –
오류는 구문 오류를 나타내는 "유형 예상"입니다. 그러나 이전 경험에서와 같은 비교적 복잡한 선언의 구문 오류는 아무 의미가있을 수 있으며 일반적으로 기본 원인과 관련이 없으므로 유용하지 않습니다. –