我正在编写必须从mpusbapi.dll文件中导入其某些函数的类。不幸的是,当我尝试包括ActuatorControl.h在主文件中,我得到了LNK2005已经定义的错误,在VS 2015中使用Microchip的mpusbapi.h会产生“LNK2005已定义”错误
Error LNK2005
"unsigned long (__cdecl* MPUSBGetConfigurationDescriptor)(void *,unsigned char,void *,unsigned long,unsigned long *)" ([email protected]@[email protected])
already defined in ActuatorControl.obj
Linear Actuator
C:\Users\Edward Harsono\Desktop\Linear Actuator\Linear Actuator\Linear Actuator.obj
1
从mpusbapi.dll获得该功能的其余部分得到了相同的信息。我已经包含了mpusbapi.h和ActuatorControl.h的警卫。我在Visual Studio 2015中编写了此代码。
mpusbapi.h和mpusbapi.dll从Microchip Technology Incorporated获得。
有人可以帮助我吗?我已经上了好几个小时了。这是我的代码。
的main.cpp
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <windows.h>
#include "ActuatorControl.h"
int main()
{
ActuatorControl x;
return 0;
}
ActuatorControl.h
#pragma once
#ifndef _ActuatorControl_H_
#define _ActuatorControl_H_
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <windows.h>
#include <Dbt.h>
#include <tchar.h>
#include "mpusbapi.h"
class ActuatorControl {
private:
//----------------Global variables used in this application--------------------------------
public:
ActuatorControl();
~ActuatorControl();
};
#endif
ActuatorControl.cpp
#include "ActuatorControl.h"
ActuatorControl::ActuatorControl() {
HMODULE DLL = LoadLibrary(L"mpusbapi.dll");
if (DLL) {
MPUSBGetDLLVersion = (DWORD(*)(void)) GetProcAddress(DLL, "_MPUSBGetDLLVersion");
}
}
ActuatorControl::~ActuatorControl() {
}
请编辑您的问题以提供[mcve]。 –
我编辑了它,并包含一个可验证的例子。它可以被编译,并会给你错误 –
我在'ActuatorControl.h'看到一个问题一个标题不应该有'#包括“stdafx.h”' – drescherjm