webForumDet fria alternativet

Hittar inte .h filer

C/C++ur C/C++

2 svar · 278 visningar · startad av NoiseMaker

Medlem sedan sep. 2001171 inlägg
Frågan#1

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!

Medlem sedan sep. 2001171 inlägg
#2

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??

Medlem sedan juni 200010 432 inlägg
#3

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.

138 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)