none
vs 2008 里调用一个32 dll 出错! RRS feed

  • 問題

  • vs 2008 里调用一个32 dll 出错!


        <DllImport("coredll.dll", EntryPoint = "GetMessageW", SetLastError = True)> _
    Private Shared Function GetMessage(ByVal lpMsg As MessageExtern, ByVal hWnd As IntPtr, ByVal wMsgFilterMin As System.UInt32, ByVal wMsgFilterMax As System.UInt32) As Boolean
        End Function

    错误    7    未声明名称“EntryPoint”。    d:\kong\gps\gps\gps\main.vb    19    31    gps

    2010年10月12日 上午 11:38

解答

  • 指名引數要用: EntryPoint := xxx
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月12日 下午 01:46
  • 您可以改用GetMessage函數
    2010年10月13日 上午 02:05

所有回覆

  • Imports System
    Imports System.Runtime
    Imports System.Collections.Generic
    Imports System.Runtime.InteropServices
    Imports System.Windows.Forms
    Imports Microsoft.WindowsCE.Forms
    Imports System.Data
    Imports System.Drawing
    Imports System.Linq
    Imports System.Text

    Public Class main

        Public Structure MSG
            Public hwnd As IntPtr
            Public message As System.UInt32
            Public wParam As System.UInt32
            Public lParam As Integer
            Public time As System.UInt32
            Public pt As Point
        End Structure

        <DllImport("coredll.dll", SetLastError = True)> Private Shared Function PostQuitMessage(ByVal nExitCode As Integer)
        End Function
        <DllImport("coredll.dll")> _
    Private Shared Function WaitMessage()
        End Function
        <DllImport("coredll.dll", EntryPoint = "GetMessageW", SetLastError = True)> _
    Private Shared Function GetMessage(ByVal lpMsg As MSG, ByVal hWnd As IntPtr, ByVal wMsgFilterMin As System.UInt32, ByVal wMsgFilterMax As System.UInt32) As Boolean
        End Function
        <DllImport("coredll.dll", EntryPoint = "PeekMessageW", SetLastError = True)> _
    Private Shared Function PeekMessagee(ByVal lpMsg As MSG, ByVal hWnd As IntPtr, ByVal wMsgFilterMin As System.UInt32, ByVal wMsgFilterMax As System.UInt32, ByVal wRemoveMsg As System.UInt32) As Boolean
        End Function
        <DllImport("coredll.dll", SetLastError = True)> _
        Private Shared Function TranslateMessage(ByVal pMsg As MSG) As Boolean
        End Function
        <DllImport("coredll.dll", SetLastError = True)> _
          Private Shared Function DispatchMessage(ByVal pMsg As MSG) As Boolean

     

    警告 6 函数没有“As”子句;假定返回类型为 Object。 d:\kong\gps\gps\gps\main.vb 26 25 gps
    错误 7 未声明名称“EntryPoint”。 d:\kong\gps\gps\gps\main.vb 28 31 gps
    错误 8 未声明名称“SetLastError”。 d:\kong\gps\gps\gps\main.vb 28 59 gps
    错误 9 未声明名称“EntryPoint”。 d:\kong\gps\gps\gps\main.vb 31 31 gps
    错误 10 未声明名称“SetLastError”。 d:\kong\gps\gps\gps\main.vb 31 60 gps
    错误 11 未声明名称“SetLastError”。 d:\kong\gps\gps\gps\main.vb 34 31 gps
    错误 12 未声明名称“SetLastError”。 d:\kong\gps\gps\gps\main.vb 37 31 gps

    我在C#可以调并指定 EntryPoint SetLastError 的值!

    2010年10月12日 下午 12:43
  • 指名引數要用: EntryPoint := xxx
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月12日 下午 01:46
  • 可以了谢谢!还有个问题 wince 里是不是没有 WaitMessage 函数!我想叫在程序等待下一个消息应该怎样做!

     

    2010年10月12日 下午 04:56
  • 您可以改用GetMessage函數
    2010年10月13日 上午 02:05