This question already has an answer here:
Lib and DLL linking to an exe error “cannot read at 0x300”
(1个答案)
6年前关闭。
我试图在C++中制作一个简单的HelloWorld DLL,以使第一次使用C++ DLL变得如虎添翼。但是,当我尝试构建包含我的方法的项目时,总是会收到
在我的
这是利用DLL的程序的主要方法(称为
在我单独的DLL的Visual Studio项目中,我有:
(1个答案)
6年前关闭。
我试图在C++中制作一个简单的HelloWorld DLL,以使第一次使用C++ DLL变得如虎添翼。但是,当我尝试构建包含我的方法的项目时,总是会收到
error LNK1107: invalid or corrupt file: cannot read at 0x2B8 C:\Users\octavio\Documents\Visual Studio 2013\Projects\UseOfDll\UseOfDll\HelloWorldDll.dll
错误。在我的
UseOfDll
项目中,我将C:\Users\octavio\Documents\Visual Studio 2013\Projects\UseOfDll\UseOfDll\HelloWorldDll.dll
添加到Project > UseOfDll Properties > Linker > Input > Additional Dependecies
中。我还将HelloWorldDll.dll
和HelloDll.h
添加到UseOfDll
项目目录中。这是利用DLL的程序的主要方法(称为
UseOfDll
):// UseOfDll.cpp ----------------------------------------------------
#include "stdafx.h"
#include "HelloDll.h"
int _tmain(int argc, _TCHAR* argv[]) {
HelloDll helloDll;
helloDll.hello();
HelloDll::helloStatic();
getchar();
return 0;
}
在我单独的DLL的Visual Studio项目中,我有:
// HelloDll.h ------------------------------------------------------
#pragma once
#ifdef DLLDIR_EX
#define DLLDIR __declspec(dllexport) // export DLL information
#else
#define DLLDIR __declspec(dllimport) // import DLL information
#endif
class HelloDll {
public:
HelloDll();
~HelloDll();
void hello();
static void helloStatic();
};
// HelloDll.cpp ----------------------------------------------------
#include "stdafx.h"
#include "HelloDll.h"
#include <iostream>
using namespace std;
HelloDll::HelloDll() {}
HelloDll::~HelloDll() {}
void HelloDll::hello() {
cout << "Hello World of DLL" << endl;
}
void HelloDll::helloStatic() {
cout << "Hello World of DLL static" << endl;
}
最佳答案
解决方案:将class HelloDll
替换为class DLLDIR HelloDll
。
这会将类链接到DLL导出库。
关于c++ - 错误LNK1104将.dll链接到Visual Studio中的应用程序 “invalid or corrupt file” ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23814344/
10-13 06:03