Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
August 20, 2004 Link woes | ||||
---|---|---|---|---|
| ||||
Any idea why this little program fails to link? import std.c.windows.windows; export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); int main() { return GetMenuInfo(null, null); } The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) -- andy |
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andy Friesen | Looks to me like you're trying to export GMI from your exe "Andy Friesen" <andy@ikagames.com> wrote in message news:cg3md1$2o30$1@digitaldaemon.com... > Any idea why this little program fails to link? > > import std.c.windows.windows; > > export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); > > int main() { > return GetMenuInfo(null, null); > } > > The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) > > -- andy |
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | Matthew wrote:
> Looks to me like you're trying to export GMI from your exe
>
errr right. I was at the "try random things to see what happens" stage. :)
Omitting the "export" keyword doesn't have any effect on the error message.
-- andy
|
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andy Friesen | On Thu, 19 Aug 2004 19:12:09 -0700, Andy Friesen wrote: > Any idea why this little program fails to link? > > import std.c.windows.windows; > > export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); > > int main() { > return GetMenuInfo(null, null); > } > > The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) > > -- andy Could it be that you really need GetMenuItemInfo ? Note that there are two versions of that, an ANSI one and a Unicode one. GetMenuItemInfoA GetMenuItemInfoW -- Derek Melbourne, Australia 20/Aug/04 12:39:50 PM |
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andy Friesen | Looks like user32.lib is out of date. "Andy Friesen" <andy@ikagames.com> wrote in message news:cg3md1$2o30$1@digitaldaemon.com... > Any idea why this little program fails to link? > > import std.c.windows.windows; > > export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); > > int main() { > return GetMenuInfo(null, null); > } > > The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) > > -- andy |
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andy Friesen | Andy Friesen wrote: > Any idea why this little program fails to link? > > import std.c.windows.windows; > > export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); > > int main() { > return GetMenuInfo(null, null); > } > > The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) > > -- andy It looks to me like that particular item may be missing from the Digital Mars version of user32.lib. I've run into this problem from time to time. I usually can get it to work by creating my own .def file and using DM's implib.exe to create a better .lib. implib user32.lib user32.def (I think the user32.dll has to be in the path environment entry for this to work.) Here's a .def file that I created previously (it already has "_GetMenuInfo@8 = GetMenuInfo", so hopefully that's a good sign): LIBRARY user32 EXETYPE NT SUBSYSTEM WINDOWS EXPORTS _EditWndProc@16 = EditWndProc _RegisterClassA@4 = RegisterClassA _RegisterClassW@4 = RegisterClassW _UnregisterClassA@8 = UnregisterClassA _UnregisterClassW@8 = UnregisterClassW _GetClassInfoA@12 = GetClassInfoA _GetClassInfoW@12 = GetClassInfoW _GetClassWord@8 = GetClassWord _SetClassWord@12 = SetClassWord _GetClassLongA@8 = GetClassLongA _GetClassLongW@8 = GetClassLongW _SetClassLongA@12 = SetClassLongA _SetClassLongW@12 = SetClassLongW _GetClassNameA@12 = GetClassNameA _GetClassNameW@12 = GetClassNameW _LookupIconIdFromDirectory@8 = LookupIconIdFromDirectory _CreateIconFromResource@16 = CreateIconFromResource _GetIconInfo@8 = GetIconInfo _CreateIconIndirect@4 = CreateIconIndirect _LoadMenuA@8 = LoadMenuA _LoadMenuW@8 = LoadMenuW _LoadCursorA@8 = LoadCursorA _LoadCursorW@8 = LoadCursorW _LoadIconA@8 = LoadIconA _LoadIconW@8 = LoadIconW _LoadBitmapA@8 = LoadBitmapA _LoadBitmapW@8 = LoadBitmapW _LoadAcceleratorsA@8 = LoadAcceleratorsA _LoadAcceleratorsW@8 = LoadAcceleratorsW _LoadStringA@16 = LoadStringA _LoadStringW@16 = LoadStringW _GetMessageA@16 = GetMessageA _GetMessageW@16 = GetMessageW _PeekMessageA@20 = PeekMessageA _PeekMessageW@20 = PeekMessageW _TranslateMessage@4 = TranslateMessage _DispatchMessageA@4 = DispatchMessageA _DispatchMessageW@4 = DispatchMessageW _SetMessageQueue@4 = SetMessageQueue _GetMessagePos@0 = GetMessagePos _GetMessageTime@0 = GetMessageTime _WaitMessage@0 = WaitMessage _WaitForInputIdle@8 = WaitForInputIdle _RegisterHotKey@16 = RegisterHotKey _UnregisterHotKey@8 = UnregisterHotKey _GetMessageExtraInfo@0 = GetMessageExtraInfo _AttachThreadInput@12 = AttachThreadInput _SendMessageA@16 = SendMessageA _SendMessageW@16 = SendMessageW _SendMessageTimeoutA@28 = SendMessageTimeoutA _SendMessageTimeoutW@28 = SendMessageTimeoutW _SendNotifyMessageA@16 = SendNotifyMessageA _SendNotifyMessageW@16 = SendNotifyMessageW _SendMessageCallbackA@24 = SendMessageCallbackA _SendMessageCallbackW@24 = SendMessageCallbackW _PostMessageA@16 = PostMessageA _PostMessageW@16 = PostMessageW _PostThreadMessageA@16 = PostThreadMessageA _PostThreadMessageW@16 = PostThreadMessageW _ReplyMessage@4 = ReplyMessage _PostQuitMessage@4 = PostQuitMessage _InSendMessage@0 = InSendMessage _InSendMessageEx@4 = InSendMessageEx _RegisterWindowMessageA@4 = RegisterWindowMessageA _RegisterWindowMessageW@4 = RegisterWindowMessageW _SwapMouseButton@4 = SwapMouseButton _GetDoubleClickTime@0 = GetDoubleClickTime _SetDoubleClickTime@4 = SetDoubleClickTime _GetSystemMetrics@4 = GetSystemMetrics _GetSysColor@4 = GetSysColor _SetSysColors@12 = SetSysColors _EnumWindows@8 = EnumWindows _EnumChildWindows@12 = EnumChildWindows _EnumThreadWindows@12 = EnumThreadWindows _ShowWindow@8 = ShowWindow _ShowOwnedPopups@8 = ShowOwnedPopups _OpenIcon@4 = OpenIcon _CloseWindow@4 = CloseWindow _CreateWindowExA@48 = CreateWindowExA _CreateWindowExW@48 = CreateWindowExW _DestroyWindow@4 = DestroyWindow _SetWindowPos@28 = SetWindowPos _BeginDeferWindowPos@4 = BeginDeferWindowPos _DeferWindowPos@32 = DeferWindowPos _EndDeferWindowPos@4 = EndDeferWindowPos _MoveWindow@24 = MoveWindow _BringWindowToTop@4 = BringWindowToTop _LockWindowUpdate@4 = LockWindowUpdate _UpdateLayeredWindow@36 = UpdateLayeredWindow _SetLayeredWindowAttributes@16 = SetLayeredWindowAttributes _DefWindowProcA@16 = DefWindowProcA _DefWindowProcW@16 = DefWindowProcW _CallWindowProcA@20 = CallWindowProcA _CallWindowProcW@20 = CallWindowProcW _FlashWindow@8 = FlashWindow _FlashWindowEx@4 = FlashWindowEx _EnableWindow@8 = EnableWindow _IsWindowEnabled@4 = IsWindowEnabled _IsWindowUnicode@4 = IsWindowUnicode _SetWindowTextA@8 = SetWindowTextA _SetWindowTextW@8 = SetWindowTextW _GetWindowTextA@12 = GetWindowTextA _GetWindowTextW@12 = GetWindowTextW _GetWindowTextLengthA@4 = GetWindowTextLengthA _GetWindowTextLengthW@4 = GetWindowTextLengthW _GetClientRect@8 = GetClientRect _GetWindowRect@8 = GetWindowRect _AdjustWindowRect@12 = AdjustWindowRect _AdjustWindowRectEx@16 = AdjustWindowRectEx _GetParent@4 = GetParent _SetParent@8 = SetParent _FindWindowA@8 = FindWindowA _FindWindowW@8 = FindWindowW _GetTopWindow@4 = GetTopWindow _GetLastActivePopup@4 = GetLastActivePopup _GetWindow@8 = GetWindow _ClientToScreen@8 = ClientToScreen _ScreenToClient@8 = ScreenToClient _MapWindowPoints@16 = MapWindowPoints _IsWindow@4 = IsWindow _IsChild@8 = IsChild _IsWindowVisible@4 = IsWindowVisible _IsIconic@4 = IsIconic _IsZoomed@4 = IsZoomed _AnyPopup@0 = AnyPopup _SystemParametersInfoA@16 = SystemParametersInfoA _SystemParametersInfoW@16 = SystemParametersInfoW _GetWindowThreadProcessId@8 = GetWindowThreadProcessId _GetWindowPlacement@8 = GetWindowPlacement _SetWindowPlacement@8 = SetWindowPlacement _AnimateWindow@12 = AnimateWindow _GetProcessDefaultLayout@4 = GetProcessDefaultLayout _SetProcessDefaultLayout@4 = SetProcessDefaultLayout _CreateDialogParamA@20 = CreateDialogParamA _CreateDialogParamW@20 = CreateDialogParamW _CreateDialogIndirectParamA@20 = CreateDialogIndirectParamA _CreateDialogIndirectParamW@20 = CreateDialogIndirectParamW _DialogBoxParamA@20 = DialogBoxParamA _DialogBoxParamW@20 = DialogBoxParamW _DialogBoxIndirectParamA@20 = DialogBoxIndirectParamA _DialogBoxIndirectParamW@20 = DialogBoxIndirectParamW _EndDialog@8 = EndDialog _DefDlgProcA@16 = DefDlgProcA _DefDlgProcW@16 = DefDlgProcW _GetDlgItem@8 = GetDlgItem _SetDlgItemInt@16 = SetDlgItemInt _GetDlgItemInt@16 = GetDlgItemInt _SetDlgItemTextA@12 = SetDlgItemTextA _SetDlgItemTextW@12 = SetDlgItemTextW _GetDlgItemTextA@16 = GetDlgItemTextA _GetDlgItemTextW@16 = GetDlgItemTextW _SendDlgItemMessageA@20 = SendDlgItemMessageA _SendDlgItemMessageW@20 = SendDlgItemMessageW _CheckDlgButton@12 = CheckDlgButton _CheckRadioButton@16 = CheckRadioButton _IsDlgButtonChecked@8 = IsDlgButtonChecked _GetNextDlgGroupItem@12 = GetNextDlgGroupItem _GetNextDlgTabItem@12 = GetNextDlgTabItem _GetDlgCtrlID@4 = GetDlgCtrlID _GetDialogBaseUnits@0 = GetDialogBaseUnits _MapDialogRect@8 = MapDialogRect _IsDialogMessageA@8 = IsDialogMessageA _IsDialogMessageW@8 = IsDialogMessageW _IsDialogMessage@8 = IsDialogMessage _OpenClipboard@4 = OpenClipboard _CloseClipboard@0 = CloseClipboard _EnumClipboardFormats@4 = EnumClipboardFormats _EmptyClipboard@0 = EmptyClipboard _SetClipboardData@8 = SetClipboardData _GetClipboardData@4 = GetClipboardData _RegisterClipboardFormatA@4 = RegisterClipboardFormatA _RegisterClipboardFormatW@4 = RegisterClipboardFormatW _IsClipboardFormatAvailable@4 = IsClipboardFormatAvailable _GetClipboardFormatNameA@12 = GetClipboardFormatNameA _GetClipboardFormatNameW@12 = GetClipboardFormatNameW _CountClipboardFormats@0 = CountClipboardFormats _GetPriorityClipboardFormat@8 = GetPriorityClipboardFormat _GetClipboardOwner@0 = GetClipboardOwner _GetClipboardSequenceNumber@0 = GetClipboardSequenceNumber _GetClipboardViewer@0 = GetClipboardViewer _SetClipboardViewer@4 = SetClipboardViewer _ChangeClipboardChain@8 = ChangeClipboardChain _BeginPaint@8 = BeginPaint _EndPaint@8 = EndPaint _GetWindowRgn@8 = GetWindowRgn _SetWindowRgn@12 = SetWindowRgn _UpdateWindow@4 = UpdateWindow _GetUpdateRect@12 = GetUpdateRect _GetUpdateRgn@12 = GetUpdateRgn _ExcludeUpdateRgn@8 = ExcludeUpdateRgn _InvalidateRect@12 = InvalidateRect _ValidateRect@8 = ValidateRect _InvalidateRgn@12 = InvalidateRgn _ValidateRgn@8 = ValidateRgn _RedrawWindow@16 = RedrawWindow _SetFocus@4 = SetFocus _GetFocus@0 = GetFocus _SetActiveWindow@4 = SetActiveWindow _GetActiveWindow@0 = GetActiveWindow _SetForegroundWindow@4 = SetForegroundWindow _GetForegroundWindow@0 = GetForegroundWindow _AllowSetForegroundWindow@4 = AllowSetForegroundWindow _LockSetForegroundWindow@4 = LockSetForegroundWindow _GetCapture@0 = GetCapture _SetCapture@4 = SetCapture _ReleaseCapture@0 = ReleaseCapture _LoadKeyboardLayoutA@8 = LoadKeyboardLayoutA _LoadKeyboardLayoutW@8 = LoadKeyboardLayoutW _ActivateKeyboardLayout@8 = ActivateKeyboardLayout _UnloadKeyboardLayout@4 = UnloadKeyboardLayout _GetKeyboardLayoutNameA@4 = GetKeyboardLayoutNameA _GetKeyboardLayoutNameW@4 = GetKeyboardLayoutNameW _GetKBCodePage@0 = GetKBCodePage _GetKeyState@4 = GetKeyState _GetAsyncKeyState@4 = GetAsyncKeyState _GetKeyboardState@4 = GetKeyboardState _SetKeyboardState@4 = SetKeyboardState _GetKeyNameTextA@12 = GetKeyNameTextA _GetKeyNameTextW@12 = GetKeyNameTextW _GetKeyboardType@4 = GetKeyboardType _ToAscii@20 = ToAscii _ToUnicode@24 = ToUnicode _VkKeyScanA@4 = VkKeyScanA _VkKeyScanW@4 = VkKeyScanW _GetAltTabInfoA@20 = GetAltTabInfoA _GetAltTabInfoW@20 = GetAltTabInfoW _GetAltTabInfo@20 = GetAltTabInfo _GetAncestor@8 = GetAncestor _GetComboBoxInfo@8 = GetComboBoxInfo _GetCursorInfo@4 = GetCursorInfo _GetGUIThreadInfo@8 = GetGUIThreadInfo _GetListBoxInfo@4 = GetListBoxInfo _GetMenuBarInfo@16 = GetMenuBarInfo _GetScrollBarInfo@12 = GetScrollBarInfo _GetTitleBarInfo@8 = GetTitleBarInfo _GetWindowInfo@8 = GetWindowInfo _GetWindowModuleFileNameA@12 = GetWindowModuleFileNameA _GetWindowModuleFileNameW@12 = GetWindowModuleFileNameW _GetWindowModuleFileName@12 = GetWindowModuleFileName _NotifyWinEvent@16 = NotifyWinEvent _RealChildWindowFromPoint@12 = RealChildWindowFromPoint _RealGetWindowClass@12 = RealGetWindowClass _RealGetWindowClassA@12 = RealGetWindowClassA _RealGetWindowClassW@12 = RealGetWindowClassW _SetWinEventHook@28 = SetWinEventHook _UnhookWinEvent@4 = UnhookWinEvent _MapVirtualKeyA@8 = MapVirtualKeyA _MapVirtualKeyW@8 = MapVirtualKeyW _OemKeyScan@4 = OemKeyScan _GetInputState@0 = GetInputState _GetQueueStatus@4 = GetQueueStatus _MsgWaitForMultipleObjects@20 = MsgWaitForMultipleObjects _MsgWaitForMultipleObjectsEx@20 = MsgWaitForMultipleObjectsEx _SetTimer@16 = SetTimer _KillTimer@8 = KillTimer _TranslateAcceleratorA@12 = TranslateAcceleratorA _TranslateAcceleratorW@12 = TranslateAcceleratorW _TranslateAccelerator@12 = TranslateAccelerator _LoadMenuIndirectW@4 = LoadMenuIndirectW _LoadMenuIndirectA@4 = LoadMenuIndirectA _GetMenu@4 = GetMenu _SetMenu@8 = SetMenu _ChangeMenuA@20 = ChangeMenuA _ChangeMenuW@20 = ChangeMenuW _HiliteMenuItem@16 = HiliteMenuItem _GetMenuStringA@20 = GetMenuStringA _GetMenuStringW@20 = GetMenuStringW _GetMenuState@12 = GetMenuState _DrawMenuBar@4 = DrawMenuBar _GetSystemMenu@8 = GetSystemMenu _CreateMenu@0 = CreateMenu _CreatePopupMenu@0 = CreatePopupMenu _DestroyMenu@4 = DestroyMenu _CheckMenuItem@12 = CheckMenuItem _EnableMenuItem@12 = EnableMenuItem _GetSubMenu@8 = GetSubMenu _GetMenuItemID@8 = GetMenuItemID _GetMenuItemCount@4 = GetMenuItemCount _InsertMenuA@20 = InsertMenuA _InsertMenuW@20 = InsertMenuW _AppendMenuA@16 = AppendMenuA _AppendMenuW@16 = AppendMenuW _ModifyMenuA@20 = ModifyMenuA _ModifyMenuW@20 = ModifyMenuW _RemoveMenu@12 = RemoveMenu _DeleteMenu@12 = DeleteMenu _SetMenuItemBitmaps@20 = SetMenuItemBitmaps _GetMenuCheckMarkDimensions@0 = GetMenuCheckMarkDimensions _TrackPopupMenu@28 = TrackPopupMenu _ScrollWindow@20 = ScrollWindow _ScrollDC@28 = ScrollDC _ScrollWindowEx@32 = ScrollWindowEx _SetScrollPos@16 = SetScrollPos _GetScrollPos@8 = GetScrollPos _SetScrollRange@20 = SetScrollRange _GetScrollRange@16 = GetScrollRange _ShowScrollBar@12 = ShowScrollBar _SetPropA@12 = SetPropA _SetPropW@12 = SetPropW _GetPropA@8 = GetPropA _GetPropW@8 = GetPropW _RemovePropA@8 = RemovePropA _RemovePropW@8 = RemovePropW _EnumPropsA@8 = EnumPropsA _EnumPropsW@8 = EnumPropsW _EnumPropsExA@12 = EnumPropsExA _EnumPropsExW@12 = EnumPropsExW _MessageBoxA@16 = MessageBoxA _MessageBoxW@16 = MessageBoxW _MessageBoxExA@20 = MessageBoxExA _MessageBoxExW@20 = MessageBoxExW _MessageBeep@4 = MessageBeep _CreateCursor@28 = CreateCursor _DestroyCursor@4 = DestroyCursor _CreateIcon@28 = CreateIcon _DestroyIcon@4 = DestroyIcon _CreateAcceleratorTableA@8 = CreateAcceleratorTableA _CreateAcceleratorTableW@8 = CreateAcceleratorTableW _DestroyAcceleratorTable@4 = DestroyAcceleratorTable _CopyAcceleratorTableA@12 = CopyAcceleratorTableA _CopyAcceleratorTableW@12 = CopyAcceleratorTableW _ShowCursor@4 = ShowCursor _SetCursorPos@8 = SetCursorPos _SetCursor@4 = SetCursor _GetCursorPos@4 = GetCursorPos _ClipCursor@4 = ClipCursor _GetClipCursor@4 = GetClipCursor _GetCursor@0 = GetCursor _SetSystemCursor@8 = SetSystemCursor _LoadCursorFromFileA@4 = LoadCursorFromFileA _LoadCursorFromFileW@4 = LoadCursorFromFileW _DrawIcon@16 = DrawIcon _CreateCaret@16 = CreateCaret _GetCaretBlinkTime@0 = GetCaretBlinkTime _SetCaretBlinkTime@4 = SetCaretBlinkTime _DestroyCaret@0 = DestroyCaret _HideCaret@4 = HideCaret _ShowCaret@4 = ShowCaret _SetCaretPos@8 = SetCaretPos _GetCaretPos@4 = GetCaretPos _WindowFromPoint@8 = WindowFromPoint _ChildWindowFromPoint@12 = ChildWindowFromPoint _GetWindowWord@8 = GetWindowWord _SetWindowWord@12 = SetWindowWord _GetWindowLongA@8 = GetWindowLongA _GetWindowLongW@8 = GetWindowLongW _SetWindowLongA@12 = SetWindowLongA _SetWindowLongW@12 = SetWindowLongW _GetDesktopWindow@0 = GetDesktopWindow _CreateDesktopA@24 = CreateDesktopA _CreateDesktopW@24 = CreateDesktopW _OpenDesktopA@16 = OpenDesktopA _OpenDesktopW@16 = OpenDesktopW _OpenInputDesktop@12 = OpenInputDesktop _SwitchDesktop@4 = SwitchDesktop _GetInputDesktop@0 = GetInputDesktop _SetThreadDesktop@4 = SetThreadDesktop _GetThreadDesktop@4 = GetThreadDesktop _CloseDesktop@4 = CloseDesktop _SetDeskWallpaper@4 = SetDeskWallpaper _EnumDisplayDevicesA@16 = EnumDisplayDevicesA _EnumDisplayDevicesW@16 = EnumDisplayDevicesW _EnumDisplaySettingsA@12 = EnumDisplaySettingsA _EnumDisplaySettingsW@12 = EnumDisplaySettingsW _EnumDisplaySettingsExA@16 = EnumDisplaySettingsExA _EnumDisplaySettingsExW@16 = EnumDisplaySettingsExW _EnumWindowStationsA@8 = EnumWindowStationsA _EnumWindowStationsW@8 = EnumWindowStationsW _EnumDesktopsA@12 = EnumDesktopsA _EnumDesktopsW@12 = EnumDesktopsW _EnumDesktopWindows@12 = EnumDesktopWindows _CreateWindowStationA@16 = CreateWindowStationA _CreateWindowStationW@16 = CreateWindowStationW _OpenWindowStationA@12 = OpenWindowStationA _OpenWindowStationW@12 = OpenWindowStationW _CloseWindowStation@4 = CloseWindowStation _SetProcessWindowStation@4 = SetProcessWindowStation _GetProcessWindowStation@0 = GetProcessWindowStation _SetUserObjectSecurity@12 = SetUserObjectSecurity _GetUserObjectSecurity@20 = GetUserObjectSecurity _SetUserObjectInformationW@16 = SetUserObjectInformationW _SetUserObjectInformationA@16 = SetUserObjectInformationA _GetUserObjectInformationW@20 = GetUserObjectInformationW _GetUserObjectInformationA@20 = GetUserObjectInformationA _DlgDirListA@20 = DlgDirListA _DlgDirListW@20 = DlgDirListW _DlgDirSelectExA@16 = DlgDirSelectExA _DlgDirSelectExW@16 = DlgDirSelectExW _DlgDirListComboBoxA@20 = DlgDirListComboBoxA _DlgDirListComboBoxW@20 = DlgDirListComboBoxW _DlgDirSelectComboBoxExA@16 = DlgDirSelectComboBoxExA _DlgDirSelectComboBoxExW@16 = DlgDirSelectComboBoxExW _SetWindowsHookA@8 = SetWindowsHookA _SetWindowsHookW@8 = SetWindowsHookW _UnhookWindowsHook@8 = UnhookWindowsHook _SetWindowsHookExA@16 = SetWindowsHookExA _SetWindowsHookExW@16 = SetWindowsHookExW _UnhookWindowsHookEx@4 = UnhookWindowsHookEx _CallNextHookEx@16 = CallNextHookEx _CallMsgFilterA@8 = CallMsgFilterA _CallMsgFilterW@8 = CallMsgFilterW _CallMsgFilter@8 = CallMsgFilter _DefFrameProcA@20 = DefFrameProcA _DefFrameProcW@20 = DefFrameProcW _DefMDIChildProcA@16 = DefMDIChildProcA _DefMDIChildProcW@16 = DefMDIChildProcW _ArrangeIconicWindows@4 = ArrangeIconicWindows _CascadeChildWindows@8 = CascadeChildWindows _TileChildWindows@8 = TileChildWindows _CreateMDIWindowA@40 = CreateMDIWindowA _CreateMDIWindowW@40 = CreateMDIWindowW _WinHelpA@16 = WinHelpA _WinHelpW@16 = WinHelpW _GrayStringA@36 = GrayStringA _GrayStringW@36 = GrayStringW _DrawTextA@20 = DrawTextA _DrawTextW@20 = DrawTextW _TabbedTextOutA@32 = TabbedTextOutA _TabbedTextOutW@32 = TabbedTextOutW _GetTabbedTextExtentA@20 = GetTabbedTextExtentA _GetTabbedTextExtentW@20 = GetTabbedTextExtentW _DrawFocusRect@8 = DrawFocusRect _GetWindowDC@4 = GetWindowDC _GetDC@4 = GetDC _ReleaseDC@8 = ReleaseDC _WindowFromDC@4 = WindowFromDC _GetDCEx@12 = GetDCEx _ExitWindowsEx@8 = ExitWindowsEx _SetDebugErrorLevel@4 = SetDebugErrorLevel _FillRect@12 = FillRect _InvertRect@8 = InvertRect _FrameRect@12 = FrameRect _DdeInitializeA@16 = DdeInitializeA _DdeInitializeW@16 = DdeInitializeW _DdeUninitialize@4 = DdeUninitialize _DdeCmpStringHandles@8 = DdeCmpStringHandles _DdeConnectList@20 = DdeConnectList _DdeQueryNextServer@8 = DdeQueryNextServer _DdeDisconnectList@4 = DdeDisconnectList _DdeConnect@16 = DdeConnect _DdeDisconnect@4 = DdeDisconnect _DdeReconnect@4 = DdeReconnect _DdeQueryConvInfo@12 = DdeQueryConvInfo _DdeSetUserHandle@12 = DdeSetUserHandle _DdeAbandonTransaction@12 = DdeAbandonTransaction _DdePostAdvise@12 = DdePostAdvise _DdeEnableCallback@12 = DdeEnableCallback _DdeNameService@16 = DdeNameService _DdeClientTransaction@32 = DdeClientTransaction _DdeCreateDataHandle@28 = DdeCreateDataHandle _DdeAddData@16 = DdeAddData _DdeGetData@16 = DdeGetData _DdeAccessData@8 = DdeAccessData _DdeFreeDataHandle@4 = DdeFreeDataHandle _DdeUnaccessData@4 = DdeUnaccessData _DdeGetLastError@4 = DdeGetLastError _DdeCreateStringHandleA@12 = DdeCreateStringHandleA _DdeCreateStringHandleW@12 = DdeCreateStringHandleW _DdeQueryStringA@20 = DdeQueryStringA _DdeQueryStringW@20 = DdeQueryStringW _DdeFreeStringHandle@8 = DdeFreeStringHandle _DdeKeepStringHandle@8 = DdeKeepStringHandle _DdeImpersonateClient@4 = DdeImpersonateClient _ImpersonateDdeClientWindow@8 = ImpersonateDdeClientWindow _DdeSetQualityOfService@12 = DdeSetQualityOfService _PackDDElParam@12 = PackDDElParam _UnpackDDElParam@16 = UnpackDDElParam _FreeDDElParam@8 = FreeDDElParam _ReuseDDElParam@20 = ReuseDDElParam _DragObject@20 = DragObject _DragDetect@12 = DragDetect _GetOpenClipboardWindow@0 = GetOpenClipboardWindow _DrawFrame@16 = DrawFrame _EnableScrollBar@12 = EnableScrollBar _CopyIcon@4 = CopyIcon _IsMenu@4 = IsMenu _SetRect@20 = SetRect _SetRectEmpty@4 = SetRectEmpty _CopyRect@8 = CopyRect _InflateRect@12 = InflateRect _SubtractRect@12 = SubtractRect _IntersectRect@12 = IntersectRect _UnionRect@12 = UnionRect _OffsetRect@12 = OffsetRect _IsRectEmpty@4 = IsRectEmpty _EqualRect@8 = EqualRect _PtInRect@12 = PtInRect _wvsprintfA@12 = wvsprintfA _wvsprintfW@12 = wvsprintfW _wsprintfA = wsprintfA _wsprintfW = wsprintfW _CharLowerA@4 = CharLowerA _CharLowerW@4 = CharLowerW _CharUpperA@4 = CharUpperA _CharUpperW@4 = CharUpperW _CharNextA@4 = CharNextA _CharNextW@4 = CharNextW _CharPrevA@8 = CharPrevA _CharPrevW@8 = CharPrevW _IsCharLowerA@4 = IsCharLowerA _IsCharLowerW@4 = IsCharLowerW _IsCharUpperA@4 = IsCharUpperA _IsCharUpperW@4 = IsCharUpperW _IsCharAlphaA@4 = IsCharAlphaA _IsCharAlphaW@4 = IsCharAlphaW _IsCharAlphaNumericA@4 = IsCharAlphaNumericA _IsCharAlphaNumericW@4 = IsCharAlphaNumericW _CharLowerBuffA@8 = CharLowerBuffA _CharLowerBuffW@8 = CharLowerBuffW _CharUpperBuffA@8 = CharUpperBuffA _CharUpperBuffW@8 = CharUpperBuffW _CharToOemA@8 = CharToOemA _CharToOemW@8 = CharToOemW _CharToOemBuffA@12 = CharToOemBuffA _CharToOemBuffW@12 = CharToOemBuffW _OemToCharA@8 = OemToCharA _OemToCharW@8 = OemToCharW _OemToCharBuffA@12 = OemToCharBuffA _OemToCharBuffW@12 = OemToCharBuffW _keybd_event@16 = keybd_event _mouse_event@20 = mouse_event _SendInput@12 = SendInput _BlockInput@4 = BlockInput _GetMouseMovePointsEx@20 = GetMouseMovePointsEx _GetLastInputInfo@4 = GetLastInputInfo _SetLastErrorEx@8 = SetLastErrorEx _BroadcastSystemMessageA@20 = BroadcastSystemMessageA _BroadcastSystemMessageW@20 = BroadcastSystemMessageW _BroadcastSystemMessage@20 = BroadcastSystemMessage _CascadeWindows@20 = CascadeWindows _ChangeDisplaySettingsA@8 = ChangeDisplaySettingsA _ChangeDisplaySettingsW@8 = ChangeDisplaySettingsW _ChangeDisplaySettingsExA@20 = ChangeDisplaySettingsExA _ChangeDisplaySettingsExW@20 = ChangeDisplaySettingsExW _CharNextExA@12 = CharNextExA _CharPrevExA@16 = CharPrevExA _CheckMenuRadioItem@20 = CheckMenuRadioItem _ChildWindowFromPointEx@16 = ChildWindowFromPointEx _CopyImage@20 = CopyImage _CreateIconFromResourceEx@28 = CreateIconFromResourceEx _DrawAnimatedRects@16 = DrawAnimatedRects _DrawCaption@16 = DrawCaption _DrawEdge@16 = DrawEdge _DrawFrameControl@16 = DrawFrameControl _DrawIconEx@36 = DrawIconEx _DrawStateA@40 = DrawStateA _DrawStateW@40 = DrawStateW _DrawTextExA@24 = DrawTextExA _DrawTextExW@24 = DrawTextExW _EndMenu@0 = EndMenu _FindWindowExA@16 = FindWindowExA _FindWindowExW@16 = FindWindowExW _GetClassInfoExA@12 = GetClassInfoExA _GetClassInfoExW@12 = GetClassInfoExW _GetKeyboardLayout@4 = GetKeyboardLayout _GetKeyboardLayoutList@8 = GetKeyboardLayoutList _GetMenuContextHelpId@4 = GetMenuContextHelpId _GetMenuDefaultItem@12 = GetMenuDefaultItem _GetMenuInfo@8 = GetMenuInfo _GetMenuItemInfoA@16 = GetMenuItemInfoA _GetMenuItemInfoW@16 = GetMenuItemInfoW _GetMenuItemRect@16 = GetMenuItemRect _GetScrollInfo@12 = GetScrollInfo _GetShellWindow@0 = GetShellWindow _GetSysColorBrush@4 = GetSysColorBrush _GetWindowContextHelpId@4 = GetWindowContextHelpId _InsertMenuItemA@16 = InsertMenuItemA _InsertMenuItemW@16 = InsertMenuItemW _LoadImageA@24 = LoadImageA _LoadImageW@24 = LoadImageW _LookupIconIdFromDirectoryEx@20 = LookupIconIdFromDirectoryEx _MapVirtualKeyExA@12 = MapVirtualKeyExA _MapVirtualKeyExW@12 = MapVirtualKeyExW _MenuItemFromPoint@16 = MenuItemFromPoint _MessageBoxIndirectA@4 = MessageBoxIndirectA _MessageBoxIndirectW@4 = MessageBoxIndirectW _PaintDesktop@4 = PaintDesktop _RegisterClassExA@4 = RegisterClassExA _RegisterClassExW@4 = RegisterClassExW _SetMenuContextHelpId@8 = SetMenuContextHelpId _SetMenuDefaultItem@12 = SetMenuDefaultItem _SetMenuInfo@8 = SetMenuInfo _SetMenuItemInfoA@16 = SetMenuItemInfoA _SetMenuItemInfoW@16 = SetMenuItemInfoW _SetMessageExtraInfo@4 = SetMessageExtraInfo _SetScrollInfo@16 = SetScrollInfo _SetShellWindow@4 = SetShellWindow _SetWindowContextHelpId@8 = SetWindowContextHelpId _ShowWindowAsync@8 = ShowWindowAsync _TileWindows@20 = TileWindows _ToAsciiEx@24 = ToAsciiEx _ToUnicodeEx@28 = ToUnicodeEx _TrackMouseEvent@4 = TrackMouseEvent _TrackPopupMenuEx@24 = TrackPopupMenuEx _TranslateMDISysAccel@8 = TranslateMDISysAccel _VkKeyScanExA@8 = VkKeyScanExA _VkKeyScanExW@8 = VkKeyScanExW _GetGuiResources@8 = GetGuiResources _RegisterDeviceNotificationA@12 = RegisterDeviceNotificationA _RegisterDeviceNotificationW@12 = RegisterDeviceNotificationW _UnregisterDeviceNotification@4 = UnregisterDeviceNotification _Win32PoolAllocationStats@24 = Win32PoolAllocationStats _LockWorkStation@0 = LockWorkStation _UserHandleGrantAccess@12 = UserHandleGrantAccess _GetMonitorInfoA@8 = GetMonitorInfoA _GetMonitorInfoW@8 = GetMonitorInfoW _EnumDisplayMonitors@16 = EnumDisplayMonitors _MonitorFromPoint@12 = MonitorFromPoint _MonitorFromRect@8 = MonitorFromRect _MonitorFromWindow@8 = MonitorFromWindow _WINNLSGetIMEHotkey@4 = WINNLSGetIMEHotkey _WINNLSEnableIME@8 = WINNLSEnableIME _WINNLSGetEnableStatus@4 = WINNLSGetEnableStatus _SendIMEMessageExW@8 = SendIMEMessageExW _SendIMEMessageExA@8 = SendIMEMessageExA _IMPGetIMEW@8 = IMPGetIMEW _IMPGetIMEA@8 = IMPGetIMEA _IMPQueryIMEW@4 = IMPQueryIMEW _IMPQueryIMEA@4 = IMPQueryIMEA _IMPSetIMEW@8 = IMPSetIMEW _IMPSetIMEA@8 = IMPSetIMEA -- Justin (a/k/a jcc7) http://jcc_7.tripod.com/d/ |
August 20, 2004 Re: Link woes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek Parnell | On Fri, 20 Aug 2004 12:41:59 +1000, Derek Parnell wrote: > On Thu, 19 Aug 2004 19:12:09 -0700, Andy Friesen wrote: > >> Any idea why this little program fails to link? >> >> import std.c.windows.windows; >> >> export extern (Windows) BOOL GetMenuInfo(HMENU hMenu, void* lpcmi); >> >> int main() { >> return GetMenuInfo(null, null); >> } >> >> The linker complains about a missing "_GetMenuInfo@8". (which should, according to MSDN, be defined in user32.lib) >> >> -- andy > > Could it be that you really need GetMenuItemInfo ? Note that there are two versions of that, an ANSI one and a Unicode one. > > GetMenuItemInfoA > GetMenuItemInfoW My mistake. GetMenuInfo didn't come up in the SDK index I have on disk but its there on the MSDN web site. I guess I need to update my copy of the SDK! -- Derek Melbourne, Australia 20/Aug/04 1:25:44 PM |
Copyright © 1999-2021 by the D Language Foundation