börjar med att be om ursäkt för en långa posten =/
Jag hittade en lösning på problemet och det var att flytta in alla filer som anropas i samma katalog. Men egentligen skall det väl inte krävas att allt ligger i samma katalog när man skall kompila??
2 svar · 278 visningar · startad av NoiseMaker
Hej igen!
Jag försöker köra ett rätt enkelt exempel i Visual C++ där jag testar kompilera ett redan skrivet stycke kod. Projektet består av en CPP-fil och en .H fil.
När jag väljer "Build->Build Solution" står det i kompilerloggen att en annan headerfil inte kunde hittas. Kollar jag i den headerfilen som redan finns "deklarerad" så anropar den sin tur den .H fil som alltså inte hittas.
Jag har försökt lägga till den i katalogen med headers utan resultat.
Jag fattar om detta är en svår fråga att svara på men om .H filen ligger där den skall och VC++ ändå inte hittar den oavsett om jag pekar ut den med full sökväg eller inte.. vad katten kan jag missat då?
Samtidigt e jag lite nyfiken på skillnaden att inkludera headerfiler med
include <fil.h>
istället för
include "fil.h"
För att ytterligare beskriva koden ovan klistrar jag in koden från CCP-filen pch headerfilen.. hoppas det hjälper nått..
MathFuncsCAPI.cpp
/*
Sample source code for LassoCAPI SDK
This example creates an LCAPI module for Lasso Professional 8 which adds
three new substitution tags to LDML: [example_math_abs], [example_math_sin],
and [example_math_sqrt]. These tags have been placed in the example_math_ namespace so
that they do not interfere with the built-in [math_abs], [math_sin], and [math_sqrt] tags.
*/
#include "MathFuncsCAPI.h"
#include <math.h>
void registerLassoModule( void )
{
lasso_registerTagModule( "example_math", "abs", tagMathAbsFunc, REG_FLAGS_TAG_DEFAULT, "Absolute value" );
lasso_registerTagModule( "example_math", "sin", tagMathSinFunc, REG_FLAGS_TAG_DEFAULT, "Trigonometric Sine function" );
lasso_registerTagModule( "example_math", "sqrt", tagMathSqrtFunc, REG_FLAGS_TAG_DEFAULT, "Square Root" );
}
//
// Example usage: example_math_abs(-45.2)
//
osError
tagMathAbsFunc( lasso_request_t token, tag_action_t action )
{
lasso_type_t theParam = NULL;
// get the first parameter passed to the tag
osError err = lasso_getTagParam2(token, 0, &theParam);
if (err != osErrNoErr) // if no parameter was given, return the error
return err;
double doubleValue;
// the the parameter as a C double
lasso_typeGetDecimal(token, theParam, &doubleValue);
// now return it as a decimal
return lasso_returnTagValueDecimal(token, (double)fabs(doubleValue));
}
//
// Example usage: example_math_sin(-45.2)
//
osError
tagMathSinFunc( lasso_request_t token, tag_action_t action )
{
lasso_type_t theParam = NULL;
// get the first parameter passed to the tag
osError err = lasso_getTagParam2(token, 0, &theParam);
if (err != osErrNoErr) // if no parameter was given, return the error
return err;
double doubleValue;
// the the parameter as a C double
lasso_typeGetDecimal(token, theParam, &doubleValue);
// now return it as a decimal
return lasso_returnTagValueDecimal(token, (double)sin(doubleValue));
}
//
// Example usage: example_math_sqrt(125)
//
osError
tagMathSqrtFunc( lasso_request_t token, tag_action_t action )
{
lasso_type_t theParam = NULL;
// get the first parameter passed to the tag
osError err = lasso_getTagParam2(token, 0, &theParam);
if (err != osErrNoErr) // if no parameter was given, return the error
return err;
double doubleValue;
// the the parameter as a C double
lasso_typeGetDecimal(token, theParam, &doubleValue);
// now return it as a decimal
return lasso_returnTagValueDecimal(token, (double)sqrt(doubleValue));
}
och
MathFuncsCAPI.h
#ifndef _MATHFUNCSCAPI_H_
#define _MATHFUNCSCAPI_H_
#if MACHINE_MACOSX
#include <Lasso/LassoCAPI.h>
#else
#include "LassoCAPI.h"
#endif
#ifdef WIN32
#define CAPIFILE_EXPORT __declspec(dllexport)
#else
#define CAPIFILE_EXPORT
#endif
extern "C" CAPIFILE_EXPORT void registerLassoModule(void);
osError tagMathAbsFunc( lasso_request_t token, tag_action_t action );
osError tagMathSinFunc( lasso_request_t token, tag_action_t action );
osError tagMathSqrtFunc( lasso_request_t token, tag_action_t action );
#endif
Som vanligt är jag tacksam för all hjälp eller ideer man kan få =)
Tänk på att det e fredag idag!
börjar med att be om ursäkt för en långa posten =/
Jag hittade en lösning på problemet och det var att flytta in alla filer som anropas i samma katalog. Men egentligen skall det väl inte krävas att allt ligger i samma katalog när man skall kompila??
Headers som man själv tillhandahåller till sitt projekt brukar inkluderas i samma mapphirearki som andra egna filer - jo. Vill du ha dem i andra mappar bör du ge sökvägen dit, eller så ställer du in din kompilator för att peka dit, eller så anger du sökvägarna i dina makefiler.