corick 2022-09-27 10:06 采纳率: 75%
浏览 107
已结题

C++ Builder 怎么调用 inpout32.dll?

C++ Builder 怎么调用 inpout32.dll? 我用implib 生成了对应的lib文件,也用add proj 把lib文件导入工程中,其中的头文件inpout32.h是下载inpout32包里带有的,也#include 了,但是运行时却出现 [Linker Error] Unresolved external '__stdcall IsXP64Bit()' referenced from D:\BCBPROJ\DLLTEST\UNIT1.OBJ
这样的错误,哪位能指点一二,谢谢

程序主体C++ Builder 6
```c++
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "inpout32.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
     IsXP64Bit();
}
//



```c++
头文件C++ Builder 6
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

软件自带的头文件inpout32.h,应该是vc++的


```c++
#pragma once

//Functions exported from DLL.
//For easy inclusion is user projects.
//Original InpOut32 function support
void    _stdcall Out32(short PortAddress, short data);
short    _stdcall Inp32(short PortAddress);

//My extra functions for making life easy
BOOL    _stdcall IsInpOutDriverOpen();  //Returns TRUE if the InpOut driver was opened successfully
BOOL    _stdcall IsXP64Bit();            //Returns TRUE if the OS is 64bit (x64) Windows.

//DLLPortIO function support
UCHAR   _stdcall DlPortReadPortUchar (USHORT port);
void    _stdcall DlPortWritePortUchar(USHORT port, UCHAR Value);

USHORT  _stdcall DlPortReadPortUshort (USHORT port);
void    _stdcall DlPortWritePortUshort(USHORT port, USHORT Value);

ULONG    _stdcall DlPortReadPortUlong(ULONG port);
void    _stdcall DlPortWritePortUlong(ULONG port, ULONG Value);

//WinIO function support (Untested and probably does NOT work - esp. on x64!)
PBYTE    _stdcall MapPhysToLin(PBYTE pbPhysAddr, DWORD dwPhysSize, HANDLE *pPhysicalMemoryHandle);
BOOL    _stdcall UnmapPhysicalMemory(HANDLE PhysicalMemoryHandle, PBYTE pbLinAddr);
BOOL    _stdcall GetPhysLong(PBYTE pbPhysAddr, PDWORD pdwPhysVal);
BOOL    _stdcall SetPhysLong(PBYTE pbPhysAddr, DWORD dwPhysVal);








  • 写回答

4条回答 默认 最新

  • 来灵 2022-09-27 11:04
    关注

    1,附加依赖库添加文件名:inpout32.lib
    2,将工程设置成WIN32模式,别用x64,因为你引用的inpout32.dll是32位库

    评论 编辑记录
  • 赵4老师 2022-09-27 10:33
    关注

    附加依赖库中添加inpout32.lib

    评论 编辑记录
  • corick 2022-09-27 14:38
    关注
    评论
  • orbitgw C++领域新星创作者 2022-09-28 01:14
    关注
    获得17.50元问题酬金

    你都没链接这库的嘛

    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 赞助了问题酬金20元 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 设计程序,利用函数getCharacterCnt,实现求解出str所指字符串中指定字符的个数,并返回此值。
  • ¥15 设计程序,实现管理30个学生5门课程的成绩,功能模块要求如下。
  • ¥15 B660主板安装xp系统老是出现错误怎么办
  • ¥15 定义过的变量报错未定义
  • ¥15 如何在EXCEL某单元格中查找是否存在另一列中的内容。
  • ¥50 非对称加密(相关搜索:密码学)
  • ¥15 关于非编程寻迹小车的分析
  • ¥15 java导出EXCEL这里已经执行成功了,但是流浪器没有下载
  • ¥15 帮我把代码改的能正常运行就行
  • ¥50 有限元修正、模型修正、最小二乘法,详细步骤