Это, вероятно, дублированный вопрос, но, насколько я искал, я не мог найти проблему. Возвращенная ошибка - это проблема зависимостей, но я не понимаю, что на самом деле неправильно. Таким образом, у меня есть проект Windows Phone, я добавил компонент компонента времени исполнения Windows Phone, я создал класс и две публичные функции в моем.header:
public ref class Base64Encoding sealed
{
public:
String^ EncodeData(String^ StringData);
String^ DecodeString(String^ StringData);
};
И в моем .cpp
я заполнил функции
#include "pch.h"
#include "Base64Encode.h"
#include <wchar.h>
#include <string>
#include <iostream>
#include <stdlib.h>
String^ EncodeData(String^ StringData)
{
.
.
.
.
// return the result
return StringFromAscIIChars(result);
}
String^ DecodeString(String^ StringData)
{
.
.
.
return StringFromAscIIChars(result);
}
И когда я пытаюсь построить 2 ошибки типа LNK2001, верните их следующим образом:
Error 1 error LNK2001: unresolved external symbol "public: virtual
class Platform::String ^ __cdecl
Base64Encode_::Base64Encoding::[Base64Encode_::__IBase64EncodingPublicNonVirtuals]::EncodeData(class
Platform::String ^)"
(?EncodeData@?Q__IBase64EncodingPublicNonVirtuals@Base64Encode_@@Base64Encoding@2@U$AAAP$AAVString@Platform@@P$AAV45@@Z) C:\Users\CodeNinja\Documents\Visual
Studio
2013\Projects\OpenscapeWP\Base64Encode\Base64Encode.obj Base64Encode
Error 2 error LNK2001: unresolved external symbol "public: virtual
class Platform::String ^ __cdecl
Base64Encode_::Base64Encoding::[Base64Encode_::__IBase64EncodingPublicNonVirtuals]::DecodeString(class
Platform::String ^)"
(?DecodeString@?Q__IBase64EncodingPublicNonVirtuals@Base64Encode_@@Base64Encoding@2@U$AAAP$AAVString@Platform@@P$AAV45@@Z) C:\Users\CodeNinja\Documents\Visual
Studio
2013\Projects\OpenscapeWP\Base64Encode\Base64Encode.obj Base64Encode
Если я удалю общедоступное ключевое слово в.header для обеих функций, проблема с компоновщиком исчезнет, но функции недоступны.
В заголовке я получил статическую функцию для перевода из ASCII в символы, но я думаю, что это вряд ли проблема. Так что же не так?
Я понял вопрос, и я оставляю ответ здесь, даже если я отвечаю на свой вопрос, для кого-то другого. Я создал две глобальные функции в моем.cpp файле. Они должны быть учениками:
String^ Base64Encoding::EncodeData(String^ StringData)
{ ... }
String^ Base64Encoding::DecodeString(String^ StringData)
{ ... }