У меня есть управляемая функция абсурдно простой (CLI Interop), призывающая неуправляемая функцию:LNK2028 ошибки LNK2019 по вызову неуправляемой функции в управляемой функции
void ManagedZigBeeTransport::StartDiscovery(void)
{
std::list<sDeviceEndPoint> devices = zbTransport->startDiscovery();
}
где zbTransport является unmanged объекта. У меня есть несколько других примеров методов в этом неуправляемом объекте, которые вызываются в подобных управляемых оболочках без проблем, и все они работают. Однако они не имеют возвращаемого значения. Это делает.
Это дает мне страшного
CppBridgeTransports.obj : error LNK2028: unresolved token (0A00033B) "public: class std::list<struct _sDeviceEndPoint,class std::allocator<struct _sDeviceEndPoint> > __thiscall ZBTransport::startDiscovery(void)" ([email protected]@@[email protected][email protected]@[email protected][email protected]@@[email protected]@@[email protected]@XZ) referenced in function "public: void __clrcall CppBridge::ManagedZigBeeTransport::StartDiscovery(void)" ([email protected]@[email protected]@$$FQ$AAMXXZ)
с последующего
CppBridgeTransports.obj : error LNK2019: unresolved external symbol "public: class std::list<struct _sDeviceEndPoint,class std::allocator<struct _sDeviceEndPoint> > __thiscall ZBTransport::startDiscovery(void)" ([email protected]@@[email protected][email protected]@[email protected][email protected]@@[email protected]@@[email protected]@XZ) referenced in function "public: void __clrcall CppBridge::ManagedZigBeeTransport::StartDiscovery(void)" ([email protected]@[email protected]@$$FQ$AAMXXZ)
Я не был в состоянии применить любого из информации, которую я видел в этих нитях, которые функционировали (некоторые довольно простой, как добавление файла заголовка std :: list <>).
Неуправляемая структура sDeviceEndPoint также определена в файле заголовка. Идея заключалась в том, чтобы получить этот неуправляемый std :: list <> и использовать его для загрузки управляемого ArrayList(). Но я не могу пройти этот простой шаг. Я не знаю, что вызывает проблему: std :: list или sDeviceEndPoint. Последний успешно используется в других частях этого неуправляемого управляемого моста.
Любые идеи?
Должно ли это из-за названия соглашений о возврате, которые я не понимаю?