Управляемый С++ неразрешенный маркер

Используйте длину, чтобы получить длину объекта и -, чтобы удалить последний.

v[-length(v)]

Отрицательный индекс в R извлекает все , но данные индексы.

6
задан sivabudh 1 June 2009 в 23:36
поделиться

3 ответа

Управляемый C ++ работает так же, как C #, в отношении типов в различных сборках. Это означает, что вам нужно объявить свой класс Lib как public :

public ref class Lib

И вы не должны включать Lib.h в свой LibTest проект. Когда вы добавляете ссылку на проект Lib , компилятор сможет разрешить любые найденные там символы.

Ваш текущий код включает Lib.h ,

9
ответ дан 9 December 2019 в 22:39
поделиться

If you're using managed extensions, setting the reference correctly should be all you need.

If you're using standard C++ functions, you probably need to define your functions using __declspec(dllexport) and __declspec(dllimport). See MSDN for details.

__declspec(dllexport) is what adds specific functions into the export library, and __declspec(dllimport) tells the importing library (LibTest) that it needs to import those symbols from the DLL.

1
ответ дан 9 December 2019 в 22:39
поделиться

Вот последняя модификация, предложенная Бояном. Спасибо, Боян!

Примечание: не забудьте добавить «Lib» в справочник «LibTest»!

Lib Project (скомпилирован как проект .dll)

// Lib.h

#pragma once

public ref class Lib
{
public:
  Lib(void);
};

// Lib .cpp

#include "Lib.h"

Lib::Lib(void)
{
}

Проект LibTest (скомпилирован как application.exe)

// LibTest.h

#pragma once

ref class LibTest
{
public:
  LibTest(void);
};

// LibTest.cpp

#include "LibTest.h"

LibTest::LibTest(void)
{
  Lib^ lib = gcnew Lib;
}

int main()
{
  return 0;
}
0
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: