El compilador/enlazador se queja de que no se encuentra la definición de la función en C++.
He hecho esto tantas veces, sin embargo, la razón por la que Visual Studio se queja de esto se me escapa.
Manipulator.cpp:
#include "Manipulator.h"
Manipulator::Manipulator() {}
Manipulator::~Manipulator() {}
void proc(std::string p, int f, std::string c)
{
// switch-case p to c based on f:
return;
}
Manipulator.h: (void -proc- tiene un guión bajo en rizado, y eso es lo que me vuelve loco).
#ifndef MANIPULATOR_H
#define MANIPULATOR_H
#include <string>
class Manipulator
{
private:
protected:
public:
Manipulator();
~Manipulator();
void proc(std::string, int, std::string);
// función definida para 'proc' no encontrada.
};
#endif MANIPULATOR_H
main.cpp
#include "Manipulator.h"
...
int main()
{
...
Manipulator m;
...
m.proc(opdBMP, fxn, newBMP);
return 0;
}
¿Qué es lo que Visual Studio quiere para que pueda seguir adelante? Me está diciendo que hay dos errores de enlace: LNK2019 y LNK1120 (externo no resuelto). (Solía llevar un registro de este tipo de errores pero perdí el archivo como un registro con estos).
davy.ai
Parece que la función
proc
enManipulator.cpp
está definida fuera de la claseManipulator
. Para solucionar los errores del enlazador, coloca la definición de la función dentro de la declaración de la clase enManipulator.h
de la siguiente manera:“`C++
class Manipulator
{
private:
protected:
public:
Manipulator();
~Manipulator();
};
De cualquier manera, esto debería solucionar los errores del enlazador que estás experimentando.