【发布时间】:2011-03-08 22:46:22
【问题描述】:
我有一个项目,我必须连接到基于 C 的库,但我无法使用 DLLImport 从 C# 获取函数。我必须使用基于 C++/CLI 的项目来展示这些功能以供使用。 (更多关于那个故事,但并不重要)。
我在 10 多年前学习 C++,如果这看起来很幼稚,请原谅我。
去年我购买了几本关于 C++/CLI 实现的书籍,并且对所涉及的内容有所了解——我只为这个项目深入研究了这些书籍。 (我做程序员很久了)。
我想我最好开始一个小项目示例项目,以熟悉将涉及的内容,以确保我可以编译等。我使用 Visual Studio 2008 SP1 开始了一个项目; Visual C++ > CLR > 类库。在项目中 - 我想同时使用 DLL 中的托管和本机。所以使用了 /clr 开关。
我在实际代码中使用了其他名称;但这非常非常接近。 (此时没有其他文件或函数)
标题:
//myWrapper.h
#pragma once
using namespace System;
namespace myWrapper {
public ref class myWrappedService {
myWrappedService();
bool Connected(String ^user,String ^password,String ^domain);
}
};
并且实现有这个。
//myWrapper.cpp
//This is the main DLL file
#include "stdafx.h"
#include "myWrapper.h"
using namespace System;
public ref class myWrappedService
{
public:
myWrappedService() {}
bool Connected(String ^user,String ^password,String ^domain)
{
//just a simple result to start - no real functionality
bool result = false;
return result;
}
};
那是代码 - 编译但得到链接器错误。
错误 LNK2020:未解析的令牌 (06000002) myWrapper.myWrappedService::Connected
致命错误 LNK1120:1 个未解决的外部错误。
这看起来很简单——我可能会从 C# 方法中思考很多。我希望这很简单——但我不熟悉我应该在 CLI 方法中看到的内容。 (我花了几个小时寻找答案,最后觉得我需要发布一个可能会得到答案的问题。
【问题讨论】:
标签: visual-c++ linker c++-cli