在添加windows phone运行时组件时无法解析的外部符号

C++ LNK2001 : unresolved external symbol when adding windows phone runtime component

本文关键字:符号 外部 windows 添加 phone 运行时 组件      更新时间:2023-10-16

这可能是一个重复的问题,但就我搜索而言,我找不到问题。返回的错误是依赖关系的问题,但我不明白到底是什么错了。我有一个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:UsersCodeNinjaDocumentsVisual
Studio
2013ProjectsOpenscapeWPBase64EncodeBase64Encode.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:UsersCodeNinjaDocumentsVisual
Studio
2013ProjectsOpenscapeWPBase64EncodeBase64Encode.obj Base64Encode

如果我删除两个函数的.header中的公共关键字,则链接器问题不复存在,但函数不可访问。

在标题中,我得到了一个静态函数,从ASCII转换为字符,但我认为这几乎不是问题。那么到底出了什么问题呢?

我弄清楚了这个问题,我在这里留下了答案,即使我在回答我自己的问题,为别人。我在.cpp文件中创建了两个全局函数。它们需要是类成员:

String^ Base64Encoding::EncodeData(String^ StringData)
{ ... }
String^ Base64Encoding::DecodeString(String^ StringData)
{ ... }
相关文章: