我在C:\ cryptopp中下载并提取了Crypto ++.我使用Visual Studio Express 2012来构建内部的所有项目(按照自述文件中的说明),并且所有内容都已成功构建.然后我在其他文件夹中创建了一个测试项目,并添加了cryptolib作为依赖项.之后,我添加了包含路径,因此我可以轻松地包含所有标题.当我尝试编译时,我收到有关未解析符号的错误.
为了解决这个问题,我添加C:\cryptopp\Win32\Output\Debug\cryptlib.lib了链接其他依赖项.现在我收到这个错误:
Error 1 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(cryptlib.obj) CryptoTest
Error 2 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(iterhash.obj) CryptoTest
Error 3 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(sha.obj) CryptoTest
Error 4 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' …Run Code Online (Sandbox Code Playgroud) 我有一个c ++项目.我承认我在c ++中是一个完整的零.但是我仍然需要编写一个c ++ .net包装器,这样我就可以使用非托管的c ++库.所以我有:1)非托管项目的头文件.2)非托管项目的库(.dll和.lib)3)一个空的C++ .NET项目,我打算用它作为我的c#应用程序的包装器
我怎么开始?我甚至不知道如何设置对非托管库的引用.
SOS
好吧,基本上我要包装一个大的C++项目(Recast),以便我可以在我的C#项目中使用它.
我一直试图这样做一段时间,这就是我到目前为止所做的.我正在使用C++/CLI来包装我需要的类,以便我可以在C#中使用它们.
但是,我的C#项目中还需要大量的结构和枚举.那么如何包装这些呢?
我现在使用的基本方法是将dllexport调用添加到本机c ++代码,编译为dll/lib,将此lib添加到我的C++/CLI项目并导入c ++头文件,然后将CLI项目编译为dll,最后添加此dll作为我的C#项目的参考.我感谢任何帮助.
这里有一些代码.由于C++项目非常庞大,我需要可管理的方法.
//**Native unmanaged C++ code
//**Recast.h
enum rcTimerLabel
{
A,
B,
C
};
extern "C" {
class __declspec(dllexport) rcContext
{
public:
inline rcContect(bool state);
virtual ~rcContect() {}
inline void resetLog() { if(m_logEnabled) doResetLog(); }
protected:
bool m_logEnabled;
}
struct rcConfig
{
int width;
int height;
}
} // end of extern
// **Managed CLI code
// **MyWrappers.h
#include "Recast.h"
namespace Wrappers
{
public ref class MyWrapper
{
private:
rcContect* _NativeClass;
public:
MyWrapper(bool …Run Code Online (Sandbox Code Playgroud)