473,769 Members | 5,877 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

vector functions

Hello
If someone could explain the code below to me would be great.

// return angle between two vectors
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}

// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal) const
{
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}

This is producing the following errors:

vector.h:220: error: declaration does not declare anything
vector.h:220: error: syntax error before `inline'
vector.h:226: error: ISO C++ forbids defining types within return type
vector.h:226: error: syntax error before `inline'
vector.h:233: error: syntax error before `inline'
vector.h:236: error: `angle' was not declared in this scope
vector.h:238: error: syntax error before `return'

What do % and ^ produce? Why is there a const also at the end of the
function definition?
THANKS and regards
Michael
Sep 27 '05 #1
14 4002
"Michael Sgier" <sg***@nospam.c h> schrieb im Newsbeitrag
news:43******** **************@ news.sunrise.ch ...
Hello
If someone could explain the code below to me would be great.

// return angle between two vectors
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}

// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal) const {
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}

This is producing the following errors:

vector.h:220: error: declaration does not declare anything
vector.h:220: error: syntax error before `inline'
vector.h:226: error: ISO C++ forbids defining types within return type
vector.h:226: error: syntax error before `inline'
vector.h:233: error: syntax error before `inline'
vector.h:236: error: `angle' was not declared in this scope
vector.h:238: error: syntax error before `return'
Paste your whole class. Or better: Reduce your code as much as possible and
then paste your class here.
What do % and ^ produce?
% is the modulus operator. It returns the remainder of a division.
^ is the bitwise-exclusive-or operator. It compares each bit. If one of them
is 0 and the other one is 1, the corresponding bit in the result is also 1,
otherwise it is 0.
Why is there a const also at the end of the
function definition?
Functions of a class are not allowed to modify the member variables if a
function was declared as const.
THANKS and regards
Michael


Greetings Chris
Sep 27 '05 #2
/*
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}
*/

Above the % should be scalar product so that the angle between *this
and normal would be computed, it's generally a bad to use % for cross
product, which it is often seen used in code like this. Using it for
dot/scalar product is even more strange.

Just commenting on that oddity, I could comment on the errors if I knew
which line was which (eg. which error correspond to which line). I bet
somewhere along the line some declaration was missed (maybe the headers
are not self-contained or require specific order of inclusion,
whatever, beats me w/o seeing more of the code.. :)

Sep 27 '05 #3
I just cannot resisting replying again.. I keep staring at the code in
disbelief: really bizarre use of operator overloading. +, -, /, * ..
are are still cool and useful since the meaning is easily understood,
but... what is happening here is beyond belief.. incredible stuff.. no
offence! 8P

Sep 27 '05 #4
Christian Meier wrote:
"Michael Sgier" <sg***@nospam.c h> schrieb im Newsbeitrag
news:43******** **************@ news.sunrise.ch ...
Hello
If someone could explain the code below to me would be great.

// return angle between two vectors
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}

// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal)

const
{
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}

This is producing the following errors:

vector.h:220: error: declaration does not declare anything
vector.h:220: error: syntax error before `inline'
vector.h:226: error: ISO C++ forbids defining types within return type
vector.h:226: error: syntax error before `inline'
vector.h:233: error: syntax error before `inline'
vector.h:236: error: `angle' was not declared in this scope
vector.h:238: error: syntax error before `return'


Paste your whole class. Or better: Reduce your code as much as possible
and then paste your class here.
What do % and ^ produce?


% is the modulus operator. It returns the remainder of a division.
^ is the bitwise-exclusive-or operator. It compares each bit. If one of
them is 0 and the other one is 1, the corresponding bit in the result is
also 1, otherwise it is 0.


Well, I am inclined to bet that these operators are overloaded in that
vector class to compute the scalar product and the cross product, and I
also suspect that operator! has been tweaked to compute the norm of the
vector and that operator| rescales a vector to a given length.
Best

Kai-Uwe Bux
Sep 27 '05 #5
In message <dh**********@n ews.hispeed.ch> , Christian Meier
<ch***@gmx.ch > writes
"Michael Sgier" <sg***@nospam.c h> schrieb im Newsbeitrag
news:43******* *************** @news.sunrise.c h...
Hello
If someone could explain the code below to me would be great.

// return angle between two vectors
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}
This appears to be a member function. So what's the declaration of the
class of which it's a member? We're not mind-readers here.
// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal)const
{
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}

This is producing the following errors:

vector.h:220: error: declaration does not declare anything
So which of the above is line 220? We're not mind-readers here.
vector.h:220: error: syntax error before `inline'
vector.h:226: error: ISO C++ forbids defining types within return type
vector.h:226: error: syntax error before `inline'
vector.h:233: error: syntax error before `inline'
vector.h:236: error: `angle' was not declared in this scope
vector.h:238: error: syntax error before `return'


Paste your whole class. Or better: Reduce your code as much as possible and
then paste your class here.
What do % and ^ produce?


% is the modulus operator. It returns the remainder of a division.
^ is the bitwise-exclusive-or operator. It compares each bit. If one of them
is 0 and the other one is 1, the corresponding bit in the result is also 1,
otherwise it is 0.


Not quite. % and ^ applied to built-in types do as you say. Here the
operands are of type CVector, whatever that is. My guess is that the
author of the class CVector has overloaded those operators (and also
operator| and operator*) to make them perform some completely unrelated
function.

Which is, of course, *EVIL*.
Why is there a const also at the end of the
function definition?


Functions of a class are not allowed to modify the member variables if a
function was declared as const.


--
Richard Herring
Sep 27 '05 #6
Richard Herring wrote:
In message <dh**********@n ews.hispeed.ch> , Christian Meier
<ch***@gmx.ch > writes
"Michael Sgier" <sg***@nospam.c h> schrieb im Newsbeitrag
news:43****** *************** *@news.sunrise. ch... [snip]
// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal)

const
{
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}
[snip]% is the modulus operator. It returns the remainder of a division.
^ is the bitwise-exclusive-or operator. It compares each bit. If one of
them is 0 and the other one is 1, the corresponding bit in the result is
also 1, otherwise it is 0.


Not quite. % and ^ applied to built-in types do as you say. Here the
operands are of type CVector, whatever that is. My guess is that the
author of the class CVector has overloaded those operators (and also
operator| and operator*) to make them perform some completely unrelated
function.

Which is, of course, *EVIL*.

I beg to differ. It is not evil; it is the legitimate attempt to make the
math in your code resemble the math from your text book as closely as
possible. This, makes it indeed easier to maintain the code (after some
learning curve). The fact that one can actually guess what the operators in
the OPs code are doing supports this hypothesis:

CVector operator| ( double length ) const;
// rescale a vector to length

double operator% ( CVector const & other ) const;
// scalar product

double operator! ( void ) const;
// norm

CVector operator^ ( CVector const & other ) const;
// cross product

[operator* appears to denote a projection, and I have to admit that the use
of an operator for this is questionable as you usually will not find infix
notation for projections in math texts.]
Whether operator overloading is moral or evil is a cultural question, and
the correct answer is very much context dependent. Operator overloading in
C++ allows you to implement special purpose sublanguages. Admittedly, this
is a double edged sword. In the context of math programming, I find it by
and large very helpful.
Best

Kai-Uwe Bux
Sep 28 '05 #7
"Kai-Uwe Bux" <jk********@gmx .net> schrieb im Newsbeitrag
news:dh******** **@murdoch.acc. Virginia.EDU...
Christian Meier wrote:
"Michael Sgier" <sg***@nospam.c h> schrieb im Newsbeitrag
news:43******** **************@ news.sunrise.ch ...
Hello
If someone could explain the code below to me would be great.

// return angle between two vectors
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}

// reflect this vector off surface with normal vector
const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
const CVector inline Rotate(const float angle, const CVector& normal) const
{
const float cosine = cosf(angle);
const float sine = sinf(angle);

return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}

This is producing the following errors:

vector.h:220: error: declaration does not declare anything
vector.h:220: error: syntax error before `inline'
vector.h:226: error: ISO C++ forbids defining types within return type
vector.h:226: error: syntax error before `inline'
vector.h:233: error: syntax error before `inline'
vector.h:236: error: `angle' was not declared in this scope
vector.h:238: error: syntax error before `return'


Paste your whole class. Or better: Reduce your code as much as possible
and then paste your class here.
What do % and ^ produce?


% is the modulus operator. It returns the remainder of a division.
^ is the bitwise-exclusive-or operator. It compares each bit. If one of
them is 0 and the other one is 1, the corresponding bit in the result is
also 1, otherwise it is 0.


Well, I am inclined to bet that these operators are overloaded in that
vector class to compute the scalar product and the cross product, and I
also suspect that operator! has been tweaked to compute the norm of the
vector and that operator| rescales a vector to a given length.


Of course they are overloaded. Well not "of course", but I am quite sure,
too. Fact is, we do not have any code. Another fact is, that the source
above does not compile.
So, without more code and without guesses the operators want to do, what I
described.
If he wants to know what does operator do with *this, he has to paste more
code of the class, as I mentioned. OK, where do we know if this code is
inside a class? The keyword inline is a bit confusing. It would not be
necessary if this were a class....

Anyway, to be sure, we need more code.


Best

Kai-Uwe Bux


Greetings Chris
Sep 28 '05 #8
Hello again
here's more code with the copyright. I've cutted out the parts that
i've believed to have understood. I would be very grateful for any
explanations on the following especially where i marked my questions.
( and of course the resolving of the errors. The error messages were put
to the corresponding line where
they appeared to the end of the code. )
THANKS and regards
Michael
#ifndef __VECTOR_H
#define __VECTOR_H

#include <math.h>

/*
VECTOR.H

CVector class

Some operators of the CVector class based on
operators of the CVector class by Bas Kuenen.
Copyright (c) 2000 Bas Kuenen. All Rights Reserved.
homepage: baskuenen.cfxwe b.net
*/

#define PI (3.14159265359f )
#define DEG2RAD(a) (PI/180*(a))
#define RAD2DEG(a) (180/PI*(a))

typedef float scalar_t;

class CVector
{
public:
scalar_t x;
scalar_t y;
scalar_t z; // x,y,z coordinates

public:
CVector(scalar_ t a = 0, scalar_t b = 0, scalar_t c = 0) : x(a),
y(b), z(c) {} // what does the : here?
CVector(const CVector &vec) : x(vec.x), y(vec.y), z(vec.z) {}

// vector index
scalar_t &operator[](const long idx)
{
return *((&x)+idx);
}

// vector assignment
const CVector &operator=(cons t CVector &vec) // I don't really
understand: (const CVector &vec) ???
{
x = vec.x;
y = vec.y;
z = vec.z;

return *this;
}

// vector add
const CVector operator+(const CVector &vec) const
{
return CVector(x + vec.x, y + vec.y, z + vec.z);
}

// vector add (opposite of negation)
const CVector operator+() const // hmmmm???? same to
the following ones
{
return CVector(*this);
}
// scalar self-divecide
const CVector &operator/=(const scalar_t &s)
{
const float recip = 1/s; // for speed, one divecision

x *= recip;
y *= recip;
z *= recip;

return *this;
}

// pre multiply by scalar
friend inline const CVector operator*(const scalar_t &s, const
CVector &vec)
{
return vec*s;
}

const CVector operator*(const CVector& vec) const
{
return CVector(x*vec.x , y*vec.y, z*vec.z);
}

// post multiply by scalar
/*friend inline const CVector operator*(const CVector &vec, const
scalar_t &s)
{
return CVector(vec.x*s , vec.y*s, vec.z*s);
}*/

// divide by scalar
const CVector operator/(scalar_t s) const
{
s = 1/s;

return CVector(s*x, s*y, s*z);
}

// dot product
const scalar_t DotProduct(cons t CVector &vec) const
{
return x*vec.x + y*vec.x + z*vec.z;
}

// dot product
const scalar_t operator%(const CVector &vec) const // why two
functions?
{
return x*vec.x + y*vec.x + z*vec.z;
}

// normalize this vector
void Normalize()
{
(*this) /= Length(); //humm???
}

const scalar_t operator!() const // why "const
CVector &vec" was omitted?
{
return sqrtf(x*x + y*y + z*z);
}

// return vector with specified length
const CVector operator | (const scalar_t length) const
{
return *this * (length / !(*this));
}

// set length of vector equal to length
const CVector& operator |= (const float length)
{
return *this = *this | length; // what's the
| here?
}

// return angle between two vectors
//those errors here at next line
//vector.h:220: error: declaration does not declare anything
//vector.h:220: error: syntax error before `inline'
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}

// reflect this vector off surface with normal vector
//those errors here at next line
//vector.h:226: error: ISO C++ forbids defining types within return type
//vector.h:226: error: syntax error before `inline'

const CVector inline Reflection(cons t CVector& normal) const
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
//those errors here at next line
//vector.h:233: error: syntax error before `inline'
const CVector inline Rotate(const float angle, const CVector& normal) const
{
const float cosine = cosf(angle);
//those errors here at next line
//vector.h:236: error: `angle' was not declared in this scope
const float sine = sinf(angle);
//those errors here at next line
//vector.h:238: error: syntax error before `return'
return CVector(*this * cosine + ((normal * *this) * (1.0f - cosine)) *
normal + (*this ^ normal) * sine);
}
};

#endif
Sep 28 '05 #9
Michael Sgier wrote:
Hello again
here's more code with the copyright. I've cutted out the parts that
i've believed to have understood. I would be very grateful for any
explanations on the following especially where i marked my questions.
( and of course the resolving of the errors. The error messages were put
to the corresponding line where
they appeared to the end of the code. )
Comments follow
THANKS and regards
Michael
#ifndef __VECTOR_H
#define __VECTOR_H

#include <math.h>

/*
VECTOR.H

CVector class

Some operators of the CVector class based on
operators of the CVector class by Bas Kuenen.
Copyright (c) 2000 Bas Kuenen. All Rights Reserved.
homepage: baskuenen.cfxwe b.net
*/

#define PI (3.14159265359f )
#define DEG2RAD(a) (PI/180*(a))
#define RAD2DEG(a) (180/PI*(a))

typedef float scalar_t;

class CVector
{
public:
scalar_t x;
scalar_t y;
scalar_t z; // x,y,z coordinates

public:
CVector(scalar_ t a = 0, scalar_t b = 0, scalar_t c = 0) : x(a),
y(b), z(c) {} // what does the : here?
CVector(const CVector &vec) : x(vec.x), y(vec.y), z(vec.z) {}

// vector index
scalar_t &operator[](const long idx)
{
return *((&x)+idx);
}

// vector assignment
const CVector &operator=(cons t CVector &vec) // I don't really
understand: (const CVector &vec) ???
This is standard. It says that the assignment operator for CVectors
takes one argument by reference (& means by reference), and does not use
that reference to alter the argument (that's what const means). This is
what you would want from an assignment operator. Also notice that the
copy constructor above is similar for similar reasons.
{
x = vec.x;
y = vec.y;
z = vec.z;

return *this;
}

// vector add
const CVector operator+(const CVector &vec) const
{
return CVector(x + vec.x, y + vec.y, z + vec.z);
}

// vector add (opposite of negation)
const CVector operator+() const // hmmmm???? same to
the following ones
What's to hmmm? Again we have a const member function returning a const
object. The member function is const because it does not alter the
object. The return is const because if it were not then this code

CVector v1, v2;
+v1 = v2;

would be legal. It's not a big issue because you would probably never
write code like that, but I'm sure you agree there no harm in
disallowing code like that.
{
return CVector(*this);
}
// scalar self-divecide
const CVector &operator/=(const scalar_t &s)
{
const float recip = 1/s; // for speed, one divecision

x *= recip;
y *= recip;
z *= recip;

return *this;
}

// pre multiply by scalar
friend inline const CVector operator*(const scalar_t &s, const
CVector &vec)
{
return vec*s;
}

const CVector operator*(const CVector& vec) const
{
return CVector(x*vec.x , y*vec.y, z*vec.z);
}

// post multiply by scalar
/*friend inline const CVector operator*(const CVector &vec, const
scalar_t &s)
{
return CVector(vec.x*s , vec.y*s, vec.z*s);
}*/

// divide by scalar
const CVector operator/(scalar_t s) const
{
s = 1/s;

return CVector(s*x, s*y, s*z);
}

// dot product
const scalar_t DotProduct(cons t CVector &vec) const
{
return x*vec.x + y*vec.x + z*vec.z;
}

// dot product
const scalar_t operator%(const CVector &vec) const // why two
functions?
{
return x*vec.x + y*vec.x + z*vec.z;
}
Good question. Drop the operator% would be my advice.

// normalize this vector
void Normalize()
{
(*this) /= Length(); //humm???
}
Seems reasonable to me, divide a vector by it's length, resulting is a
vector of length 1. What's the problem?

const scalar_t operator!() const // why "const
CVector &vec" was omitted?
{
return sqrtf(x*x + y*y + z*z);
}
Because operator! operates on a single CVector, not two CVector's.

// return vector with specified length
const CVector operator | (const scalar_t length) const
{
return *this * (length / !(*this));
}

// set length of vector equal to length
const CVector& operator |= (const float length)
{
return *this = *this | length; // what's the |
here?
}
It calls the function declared immediately above this one. The one with
the comment 'return vector with specified length'.

In general if you define operator@ you should also define operator @=,
this is what is being done here. operator| is defined then operator|= is
defined so that is calls operator|.


// return angle between two vectors
//those errors here at next line
//vector.h:220: error: declaration does not declare anything
//vector.h:220: error: syntax error before `inline'
const float inline Angle(const CVector& normal) const
{
return acosf(*this % normal);
}
inline is illegal here, remove it. Should be fine then.

// reflect this vector off surface with normal vector
//those errors here at next line
//vector.h:226: error: ISO C++ forbids defining types within return type
//vector.h:226: error: syntax error before `inline'

const CVector inline Reflection(cons t CVector& normal) const
Ditto.
{
const CVector vec(*this | 1); // normalize this vector
return (vec - normal * 2.0 * (vec % normal)) * !*this;
}

// rotate angle degrees about a normal
//those errors here at next line
//vector.h:233: error: syntax error before `inline'
const CVector inline Rotate(const float angle, const CVector&
normal) const
Ditto.
{
const float cosine = cosf(angle);
//those errors here at next line
//vector.h:236: error: `angle' was not declared in this scope
const float sine = sinf(angle);
//those errors here at next line
//vector.h:238: error: syntax error before `return'
return CVector(*this * cosine + ((normal * *this) * (1.0f -
cosine)) *
normal + (*this ^ normal) * sine);
}
};

#endif


john
Sep 28 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
2975
by: luigi | last post by:
Hi, I am trying to speed up the perfomance of stl vector by allocating/deallocating blocks of memory manually. one version of the code crashes when I try to free the memory. The other version seem to work. I would appreciate someone to comment on this. Version 1 (crashes on deallocating) #include <iostream>
4
35030
by: Juhan Voolaid | last post by:
Hi I need help here. When i compile my program, i get this error: $ make g++ -c -Wall inf2_functions.cpp -o inf2_functions.o inf2_classes.h:6: error: ISO C++ forbids declaration of ‘vector’ with no type inf2_classes.h:6: error: expected ‘;’ before ‘<’ token make: *** Error 1
5
1941
by: RocTheEngy | last post by:
Greetings c.l.c... I am trying to understand some structure definitions in working code (e.g. compiles, runs & produces expected results) that I have. I think I've trimmed the code to what is relevant to my question... Which is: What is the (*vector) in the "struct function" declaration. What is that line doing? My best guess is that it is a function definition that returns a struct
9
5868
by: uotani.arisa | last post by:
Hi, Can someone tell me how to declare a pointer to a vector of pointers? I'm just not sure how to do this... I've tried essentially the following: vector<string *> * v; ....
24
2960
by: toton | last post by:
Hi, I want to have a vector like class with some additional functionality (cosmetic one). So can I inherit a vector class to add the addition function like, CorresVector : public vector<Corres>{ public: void addCorres(Corres& c); //it do little more than push_back function. }
11
2138
by: arnuld | last post by:
this is the code which runs without any trouble: ----------------------------------------------------- #include <iostream> #include <string> #include <vector> struct Entry { std::string name; int e_num;
4
3356
by: stinos | last post by:
Hi All! suppose a class having a function for outputting data somehow, class X { template< class tType > void Output( const tType& arg ) { //default ToString handles integers/doubles
9
2605
by: Chris Roth | last post by:
I have a vector of vectors: vector< vector<double v; and have initialized it with: v( 5 ); as I know I will have 5 columns of data. At this point, I read text file data into each of the the vectors using push_back. I know that I will be reading in 5000 elements into each vector, so I use reserve: ifstream f( "file.txt" ); if(f.is_open()) {
4
2570
by: nw | last post by:
Hi All, I currently have a vector of objects (lets call them MyObject). I want to perform various operations regularly on the whole vector, for example find the maximum, average, or operations not dissimilar to that. So as I see it I have 3 options: 1. Implement these operations as functions 2. Derive a class from vector (from googling people seem to think this is a bad idea)
0
9423
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10050
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9999
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9866
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7413
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6675
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5310
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3967
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.