Syntax C++;和C++/CLI合作 你能提醒我如何实现C++与C++/CLI的连接吗?

Syntax C++;和C++/CLI合作 你能提醒我如何实现C++与C++/CLI的连接吗?,syntax,c++-cli,native,Syntax,C++ Cli,Native,我是这样的: 1>------ Build started: Project: Hashtable, Configuration: Debug Win32 ------ 1> Hashtable.cpp 1> Hashtable.vcxproj -> C:\Users\Denis\documents\visual studio 2010\Projects\NivalApp\Debug\Hashtable.dll 2>------ Build started: P

我是这样的:

1>------ Build started: Project: Hashtable, Configuration: Debug Win32 ------
1>  Hashtable.cpp
1>  Hashtable.vcxproj -> C:\Users\Denis\documents\visual studio 2010\Projects\NivalApp\Debug\Hashtable.dll
2>------ Build started: Project: BPSW, Configuration: Debug Win32 ------
2>BPSW.obj : error LNK2028: unresolved token (0A000327) "void __cdecl Allocation::Allocate(void)" (?Allocate@Allocation@@$$FYAXXZ) referenced in function "public: static void __clrcall BPSW::Wrapper::AllocateHashtable(void)" (?AllocateHashtable@Wrapper@BPSW@@$$FSMXXZ)
2>BPSW.obj : error LNK2019: unresolved external symbol "void __cdecl Allocation::Allocate(void)" (?Allocate@Allocation@@$$FYAXXZ) referenced in function "public: static void __clrcall BPSW::Wrapper::AllocateHashtable(void)" (?AllocateHashtable@Wrapper@BPSW@@$$FSMXXZ)
2>C:\Users\Denis\documents\visual studio 2010\Projects\NivalApp\Debug\BPSW.dll : fatal error LNK1120: 2 unresolved externals
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
“hashtable”是一个带有头的本机代码文件,我在其中分配了一个大RAM示例,它编译正常

“BPSW”是带有头的混合代码文件,我使用它作为本机代码和托管代码之间的粘合剂。在我引用本机函数Allocate()之前,它编译为ok

此外,托管文件和本机文件都有它们的预编译头文件(假设它们只是自动生成的)

哈希表

#include <vector>
#include <iostream>

using namespace std;

namespace Allocation
{
    void Allocate();
}

根据您的构建日志,“hashtable”是一个单独的dll,但您不导出
Allocate
函数,而且我猜您没有链接到“BPSW”项目中的dll。您能告诉我如何操作吗?我是说正确的链接。我查看了Hashtable/Debug文件夹-有很多.obj文件,没有dll。我感到困惑。你能给我一些参考教程或类似的吗?很遗憾,但我还是不擅长链接。也许我应该读点东西来彻底理解。见指南。给你的关键词是:“图书馆”,“导入/导出”非常感谢!在这里询问之前,我自己做了这项研究,但是我太困惑了,而且很匆忙。我将尽量不再像这样利用这些漏洞。你知道,我仍然有困难——即使在读了这篇文章之后。
#pragma once

#pragma unmanaged
#include <vector>

#pragma managed

namespace BPSW
{
        public value class Wrapper
        {
        public:

            static void AllocateHashtable();
        };
}
#pragma once

#pragma unmanaged
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <map>
#include "../Hashtable/Hashtable.h"
using namespace std;

#pragma managed
#using <System.dll>
#include "BPSW.hxx"

//namespace Allocation
//{
//  void Allocate();
//}

namespace BPSW
{

        // some more code
        // not interesting here

    void Wrapper::AllocateHashtable()
    {
        ::Allocation::Allocate();
    }
}
1>------ Build started: Project: Hashtable, Configuration: Debug Win32 ------
1>  Hashtable.cpp
1>  Hashtable.vcxproj -> C:\Users\Denis\documents\visual studio 2010\Projects\NivalApp\Debug\Hashtable.dll
2>------ Build started: Project: BPSW, Configuration: Debug Win32 ------
2>BPSW.obj : error LNK2028: unresolved token (0A000327) "void __cdecl Allocation::Allocate(void)" (?Allocate@Allocation@@$$FYAXXZ) referenced in function "public: static void __clrcall BPSW::Wrapper::AllocateHashtable(void)" (?AllocateHashtable@Wrapper@BPSW@@$$FSMXXZ)
2>BPSW.obj : error LNK2019: unresolved external symbol "void __cdecl Allocation::Allocate(void)" (?Allocate@Allocation@@$$FYAXXZ) referenced in function "public: static void __clrcall BPSW::Wrapper::AllocateHashtable(void)" (?AllocateHashtable@Wrapper@BPSW@@$$FSMXXZ)
2>C:\Users\Denis\documents\visual studio 2010\Projects\NivalApp\Debug\BPSW.dll : fatal error LNK1120: 2 unresolved externals
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========