将托管dll引用到本机c ++时的链接错误

时间:2014-03-24 14:24:50

标签: c++ linker managed

我正在尝试在本机c ++中创建一个调用托管dll的相当简单的项目。 这就是我的原生c ++代码的外观:

// MyCppStud.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "MyStudWrapper\MyStudentWrapperWrapper.h"

int _tmain(int argc, _TCHAR* argv[])
{
char * path = "C:/Users/rami.schreiber/documents/visual studio    2013/Projects/TestProj/test.xml";
MyStudentWrapperWrapper* student = new MyStudentWrapperWrapper();
//  student->GetStudent(path);
return 0;
}

以下是托管dll的.h和.cpp文件(使用/ clr编译)

    //MyStudentWrapperWrapper.h
#pragma once

//#ifdef THISDLL_EXPORTS
#define THISDLL_API __declspec(dllexport)
/*#else
#define THISDLL_API __declspec(dllimport)
#endif*/


 class MyStudentWrapper;

    class THISDLL_API MyStudentWrapperWrapper
    {
    private:
        MyStudentWrapper* _Impl;
    public:
        MyStudentWrapperWrapper();
        MyStudentWrapperWrapper(MyStudentWrapper* student);
        ~MyStudentWrapperWrapper();
        MyStudentWrapperWrapper* GetStudent(const char*  path);
        void SaveStudent(MyStudentWrapperWrapper* student, const char*  path);
    };





// MyStudentWrapperWrapper.cpp
#pragma once
#include "stdafx.h"
#include "MyStudWrapper.h"

#include "MyStudentWrapperWrapper.h"

MyStudentWrapperWrapper::MyStudentWrapperWrapper()
{
_Impl = new MyStudentWrapper;

}

当我构建解决方案时,我收到链接错误

1>MyCppStud.obj : error LNK2019: unresolved external symbol "public: __thiscall MyStudentWrapperWrapper::MyStudentWrapperWrapper(void)" (??0MyStudentWrapperWrapper@@QAE@XZ) referenced in function _main
1>c:\users\...\documents\visual studio 2013\Projects\MyStudentProj\Debug\MyCppStud.exe : fatal error LNK1120: 1 unresolved externals

根据我的理解,我没有正确引用.lib文件,因此链接器无法识别我的包装类的c'tor。 有人可以解释如何正确引用我的c ++项目的DLL。 非常感谢你!

0 个答案:

没有答案