Visual Studio Windows вызывает функцию из другого класса - PullRequest
0 голосов
/ 28 октября 2011

Я занимаюсь разработкой небольшого проекта Visual Stdio 2010 C ++. Я создал небольшой проект на основе окон. Интерфейс GUI имеет несколько кнопок. Затем я создал файл xxx.h и xxx.cpp с небольшой функцией. Теперь я хочу вызвать функцию из ххх, когда кто-нибудь нажмет кнопку. Я получаю следующую ошибку, пожалуйста, помогите мне ....

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(){

}

1 Ответ

1 голос
/ 28 октября 2011

Вам необходимо включить имя класса в определение:

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

В противном случае вы определяете совершенно не связанную функцию, которая, как оказалось, имеет одно и то же имя.

...