【问题标题】:visual studio windows calling function from other classVisual Studio Windows 调用其他类的函数
【发布时间】:2011-10-28 21:36:28
【问题描述】:

我正在开发一个小型可视化 stdio 2010 c++ 项目。我创建了一个基于 Windows 的小型项目。 GUI 界面有一些按钮。然后我创建了一个带有一些小功能的 xxx.h 和 xxx.cpp 文件。现在我想调用一个函数 xxx,当有人按下按钮时。我收到以下错误请帮助我....

1>EagleTool.obj : error LNK2028: unresolved token (0A0000CF) "public: static void __clrcall EagleTool::extractCorrectPathofEagle(void)" (?extractCorrectPathofEagle@EagleTool@@$$FSMXXZ) referenced in function "private: void __clrcall EagleGUI::Form1::button3_Click(class System::Object ^,class System::EventArgs ^)" (?button3_Click@Form1@EagleGUI@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>EagleGUI.obj : error LNK2028: unresolved token (0A00000B) "public: static void __clrcall EagleTool::extractCorrectPathofEagle(void)" (?extractCorrectPathofEagle@EagleTool@@$$FSMXXZ) referenced in function "private: void __clrcall EagleGUI::Form1::button3_Click(class System::Object ^,class System::EventArgs ^)" (?button3_Click@Form1@EagleGUI@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>EagleGUI.obj : error LNK2019: unresolved external symbol "public: static void __clrcall EagleTool::extractCorrectPathofEagle(void)" (?extractCorrectPathofEagle@EagleTool@@$$FSMXXZ) referenced in function "private: void __clrcall EagleGUI::Form1::button3_Click(class System::Object ^,class System::EventArgs ^)" (?button3_Click@Form1@EagleGUI@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>EagleTool.obj : error LNK2001: unresolved external symbol "public: static void __clrcall EagleTool::extractCorrectPathofEagle(void)" (?extractCorrectPathofEagle@EagleTool@@$$FSMXXZ)

EagleTool.h

#ifndef _EagleTool_H_
#define _EagleTool_H_
class EagleTool {

  public:
    void static extractCorrectPathofEagle();

 };

#endif

EagleTool.cpp

#include "stdafx.h"

#include "EagleTool.h"
#include "Form1.h"

void static extractCorrectPathofEagle(){

}

【问题讨论】:

  • EagleTool 是托管类吗?您是否为 extractCorrectPathofEagle() 函数编写了代码?
  • 我想看一些代码。不清楚你是否是混合模式编程,是否链接相关对象,在需要的地方指定 /clr 等。

标签: c++ winforms visual-c++ c++-cli linker-errors


【解决方案1】:

您需要在定义中包含类名:

static void EagleTool::extractCorrectPathofEagle() {
    // ...
}

否则,您将定义一个完全不相关的函数,而该函数恰好具有相同的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多