Visual Studio Windows вызывает функцию из другого класса

Я разрабатываю небольшой проект Visual stdio 2010 С++. Я создал небольшой проект на основе окон. Интерфейс GUI имеет несколько кнопок. Затем я создал файлы xxx.h и xxx.cpp с небольшой функцией. Теперь я хочу вызвать функцию fom 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(){

}

person lankabeta    schedule 28.10.2011    source источник
comment
Является ли EagleTool управляемым классом? Вы написали код для функции extractCorrectPathofEagle()?   -  person Hans Passant    schedule 28.10.2011
comment
Я хотел бы увидеть код. Неясно, программируете ли вы в смешанном режиме и связываете ли вы соответствующие объекты, указывая /clr, где это необходимо, и т. д.   -  person sehe    schedule 28.10.2011


Ответы (1)


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

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

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

person Ernest Friedman-Hill    schedule 28.10.2011