473,666 Members | 1,989 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Template class copy constructor

I have declared a copy constructor for a template class in a Visual C++
project but for some reason the compiler ignores it. I can put syntax
errors in the copy constructor and the compiler ignores them.

So what's the problem with my code?

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;
typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{
public:

inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{
m_3DVector = new pixel_data[nRow*nCol*nZed];
}
explicit inline C3DVector(const C3DVector<pixel _data>& rhs)
{
// we're assuming they're the same size
if (this != &rhs)
{
delete[] m_3DVector;
rhs.getdimensio ns(m_dimRow, m_dimCol);
m_dimZed = 3;
m_3DVector = new pixel_data[m_dimRow*m_dimC ol*m_dimZed];
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=rhs(x,y,z); //
replaced indirection with direct access!
}
}
inline ~C3DVector()
{
delete[] m_3DVector;
}

inline C3DVector<pixel _data>& operator= (C3DVector<pixe l_data>&
second)
{
// we're assuming they're the same size
if (this != &second)
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=second(x,y,z); //
replaced
return(*this);
}
inline pixel_data& operator()(int x, int y, int z)
{
if (x<0 || x>m_dimRow ||
y<0 || y>m_dimCol ||
z<0 || z>m_dimZed)
throw("Access 3D vector out of bounds");
return(m_3DVect or[x*m_dimCol*m_di mZed+y*m_dimZed +z]);
}

void writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

void writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

bool capturecolourbm p(CString m_csInputFilena me);
inline void getdimensions(u nsigned int row, unsigned int col)
{
row = m_dimRow;
col = m_dimCol;
}
protected:
pixel_data* m_3DVector;

unsigned int m_dimRow;
unsigned int m_dimCol;
unsigned int m_dimZed;
static const int RED=0, GREEN=1, BLUE=2;
};

#endif
Thanks in advance
-Muz

Mar 10 '06 #1
9 2732

mu*****@gmail.c om wrote:
I have declared a copy constructor for a template class in a Visual C++
project but for some reason the compiler ignores it. I can put syntax
errors in the copy constructor and the compiler ignores them.

So what's the problem with my code?

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;
typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{
public:

inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{
m_3DVector = new pixel_data[nRow*nCol*nZed];
}
explicit inline C3DVector(const C3DVector<pixel _data>& rhs)
{
// we're assuming they're the same size
if (this != &rhs)
{
delete[] m_3DVector;
rhs.getdimensio ns(m_dimRow, m_dimCol);
m_dimZed = 3;
m_3DVector = new pixel_data[m_dimRow*m_dimC ol*m_dimZed];
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=rhs(x,y,z); //
replaced indirection with direct access!
}
}
inline ~C3DVector()
{
delete[] m_3DVector;
}

inline C3DVector<pixel _data>& operator= (C3DVector<pixe l_data>&
second)
{
// we're assuming they're the same size
if (this != &second)
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=second(x,y,z); //
replaced
return(*this);
}
inline pixel_data& operator()(int x, int y, int z)
{
if (x<0 || x>m_dimRow ||
y<0 || y>m_dimCol ||
z<0 || z>m_dimZed)
throw("Access 3D vector out of bounds");
return(m_3DVect or[x*m_dimCol*m_di mZed+y*m_dimZed +z]);
}

void writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

void writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

bool capturecolourbm p(CString m_csInputFilena me);
inline void getdimensions(u nsigned int row, unsigned int col)
{
row = m_dimRow;
col = m_dimCol;
}
protected:
pixel_data* m_3DVector;

unsigned int m_dimRow;
unsigned int m_dimCol;
unsigned int m_dimZed;
static const int RED=0, GREEN=1, BLUE=2;
};

#endif
Thanks in advance
-Muz


Are you sure you are calling it correctly ? Copy constructor looks ok
as far as the signature is concerned.

Also, you are calling too non-const functions(getdi mensions and
operator()) on the const rhs object in the copy constructor. That will
give you compiler errors. Make them constant and the code should
compile and the copy constructor should get called.

Mar 10 '06 #2

mu*****@gmail.c om wrote:
I have declared a copy constructor for a template class in a Visual C++
project but for some reason the compiler ignores it. I can put syntax
errors in the copy constructor and the compiler ignores them.

So what's the problem with my code?

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;
typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{
public:

inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{
m_3DVector = new pixel_data[nRow*nCol*nZed];
}
explicit inline C3DVector(const C3DVector<pixel _data>& rhs)
{
// we're assuming they're the same size
if (this != &rhs)
{
delete[] m_3DVector;
rhs.getdimensio ns(m_dimRow, m_dimCol);
m_dimZed = 3;
m_3DVector = new pixel_data[m_dimRow*m_dimC ol*m_dimZed];
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=rhs(x,y,z); //
replaced indirection with direct access!
}
}
inline ~C3DVector()
{
delete[] m_3DVector;
}

inline C3DVector<pixel _data>& operator= (C3DVector<pixe l_data>&
second)
{
// we're assuming they're the same size
if (this != &second)
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=second(x,y,z); //
replaced
return(*this);
}
inline pixel_data& operator()(int x, int y, int z)
{
if (x<0 || x>m_dimRow ||
y<0 || y>m_dimCol ||
z<0 || z>m_dimZed)
throw("Access 3D vector out of bounds");
return(m_3DVect or[x*m_dimCol*m_di mZed+y*m_dimZed +z]);
}

void writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

void writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);

bool capturecolourbm p(CString m_csInputFilena me);
inline void getdimensions(u nsigned int row, unsigned int col)
{
row = m_dimRow;
col = m_dimCol;
}
protected:
pixel_data* m_3DVector;

unsigned int m_dimRow;
unsigned int m_dimCol;
unsigned int m_dimZed;
static const int RED=0, GREEN=1, BLUE=2;
};

#endif
Thanks in advance
-Muz


Are you sure you are calling it correctly ? Copy constructor looks ok
as far as the signature is concerned.

Also, you are calling too non-const functions(getdi mensions and
operator()) on the const rhs object in the copy constructor. That will
give you compiler errors. Make them constant and the code should
compile and the copy constructor should get called.

Mar 10 '06 #3
In the program an object of the C3DVector class is added to an stl
deque so i think the copy constructor should be called to put a copy in
the deque.

The program crashes around this point and Visual c++'s call stack shows
that a C3DVector copy constructor is called but it isn't the one I
wrote. Visual c++ says "there is no source code available for that
location" when I click on it, I think that means it's generating its
own.
SD2.exe!C3DVect or<unsigned char>::C3DVecto r<unsigned char>(const C3DVector<unsig ned char> & __that={...}) + 0x2f C++

I have made some template specialization functions for unsigned char
but not a copy constructor for unsigned char.

Also, I should be clear on this. The program and the C3DVector class
compile even when I take out all the code in the copy constructor and
put gibberish in there. That doesn't happen with the other functions.

Mar 10 '06 #4

muzm...@gmail.c om wrote:
In the program an object of the C3DVector class is added to an stl
deque so i think the copy constructor should be called to put a copy in
the deque.

The program crashes around this point and Visual c++'s call stack shows
that a C3DVector copy constructor is called but it isn't the one I
wrote. Visual c++ says "there is no source code available for that
location" when I click on it, I think that means it's generating its
own.
SD2.exe!C3DVect or<unsigned char>::C3DVecto r<unsigned char>(const C3DVector<unsig ned char> & __that={...}) + 0x2f C++ I have made some template specialization functions for unsigned char
but not a copy constructor for unsigned char.


I think I have seen issues debugging templates(and even some cirtual
functions) with VC++ debugger where you cannot trace in into those
functions at times if you dont have all the debugging options set.
Probably that is why it says there is no source code and then you have
to go past. Are you sure you have all the debugging options set
correctly ? Both in the C/C++ options and Linker options.

Also post the entire code, because the code you posted didnt show any
specialization. If you cant post your real code, try making a test code
and post it here to demonstrate the problem.

Also, I should be clear on this. The program and the C3DVector class
compile even when I take out all the code in the copy constructor and
put gibberish in there. That doesn't happen with the other functions.


Again if you are using specialization, post all the code here. Based on
what you are describing, you dont have a copy constructor in the
specialized code( and the compiler might be generating that for you ??)

Mar 10 '06 #5
Alright, here's a condensed version of the C3DVector class which may
allow you to help.

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{public:
inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{m_3DVector = new pixel_data[nRow*nCol*nZed];}
template<class pixel_data> C3DVector(const C3DVector<pixel _data>& rhs)
{
// code never reaches this point
}
//other functions
protected:
pixel_data* m_3DVector; unsigned int m_dimRow; unsigned int
m_dimCol; unsigned int m_dimZed; static const int RED=0, GREEN=1,
BLUE=2;
};
#endif
And here's the throughly unremarkable template specialization header
file (the problem better not be here).
#ifndef threedeeBYTEmat rix_h
#define threedeeBYTEmat rix_h
#include <vector>
template<>
void C3DVector<BYTE> ::
writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
void C3DVector<BYTE> ::
writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
bool C3DVector<BYTE> ::
capturecolourbm p(CString m_csInputFilena me);
#endif

Mar 10 '06 #6

mu*****@gmail.c om wrote:
Alright, here's a condensed version of the C3DVector class which may
allow you to help.

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{public:
inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{m_3DVector = new pixel_data[nRow*nCol*nZed];}
template<class pixel_data> C3DVector(const C3DVector<pixel _data>& rhs)
{
// code never reaches this point
}
//other functions
protected:
pixel_data* m_3DVector; unsigned int m_dimRow; unsigned int
m_dimCol; unsigned int m_dimZed; static const int RED=0, GREEN=1,
BLUE=2;
};
#endif
And here's the throughly unremarkable template specialization header
file (the problem better not be here).
#ifndef threedeeBYTEmat rix_h
#define threedeeBYTEmat rix_h
#include <vector>
template<>
void C3DVector<BYTE> ::
writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
void C3DVector<BYTE> ::
writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
bool C3DVector<BYTE> ::
capturecolourbm p(CString m_csInputFilena me);
#endif


The code that I see here is that you have specialized the member
functions ? I am not sure if this code will even compile.
First you need to specialize your class C3DVector for BYTE( maybe you
havent posted that code ) and then implement those member functions for
that specialized class. Going by your declarations and defintions of
member functions, they dont seemed to be member templates.

Show how you are specializing the C3DVector class. Does it have a copy
constructor ? Because if you are 'explicity" instantiating the
specialized C3DVector, the copy constructor in the non-spec C3DVector
has nothing to do with it and that is why it is not getting called.
It is not inheritance, if at all that is what you are thinking.

Mar 10 '06 #7
mu*****@gmail.c om wrote:
I have declared a copy constructor for a template class in a Visual C++
project but for some reason the compiler ignores it. I can put syntax
errors in the copy constructor and the compiler ignores them.

So what's the problem with my code?

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;
typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{
public:

inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{
m_3DVector = new pixel_data[nRow*nCol*nZed];
}
explicit inline C3DVector(const C3DVector<pixel _data>& rhs)
{
// we're assuming they're the same size
if (this != &rhs)
{
delete[] m_3DVector;
rhs.getdimensio ns(m_dimRow, m_dimCol);
m_dimZed = 3;
m_3DVector = new pixel_data[m_dimRow*m_dimC ol*m_dimZed];
for (unsigned int x=0; x<m_dimRow; x++)
for (unsigned int y=0; y<m_dimCol; y++)
for (unsigned int z=0; z<m_dimZed; z++)
m_3DVector[x*m_dimCol*m_di mZed+y*m_dimZed +z]=rhs(x,y,z); //
replaced indirection with direct access!
}
}


Is there a reason your copy constructor is explicit?

Also, what version of VC are you using? VC6 (and VC7 aka 2002) is
notorious for poor template support. VC7.1 aka 2003 is fairly Standard
compliant.
Mar 10 '06 #8
Besides from other things, your copy constructor declaration/definition is
incorrect.
You should write simply:

C3DVector(const C3DVector & rhs)
{
// do your copy here
}

<mu*****@gmail. com> wrote in message
news:11******** **************@ i39g2000cwa.goo glegroups.com.. .
Alright, here's a condensed version of the C3DVector class which may
allow you to help.

#ifndef threedeematrix_ h
#define threedeematrix_ h

#include <vector>

using namespace std;typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{public:
inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0){;}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed)
{m_3DVector = new pixel_data[nRow*nCol*nZed];}
template<class pixel_data> C3DVector(const C3DVector<pixel _data>& rhs)
{
// code never reaches this point
}
//other functions
protected:
pixel_data* m_3DVector; unsigned int m_dimRow; unsigned int
m_dimCol; unsigned int m_dimZed; static const int RED=0, GREEN=1,
BLUE=2;
};
#endif
And here's the throughly unremarkable template specialization header
file (the problem better not be here).
#ifndef threedeeBYTEmat rix_h
#define threedeeBYTEmat rix_h
#include <vector>
template<>
void C3DVector<BYTE> ::
writegreybmp(in t colourcomponent ,
CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
void C3DVector<BYTE> ::
writecolourbmp( CString outputfilename,
BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih,
bool popupbox);
template<>
bool C3DVector<BYTE> ::
capturecolourbm p(CString m_csInputFilena me);
#endif

Mar 11 '06 #9
So, I left work on Friday, vowing to make a post about the resolution
to my problem on Monday. On Monday I busy doing other stuff so I
finally got a chance to respond on Tuesday, and I can't remember how
the problem was solved.
The program compiles now and calls the copy constructor when necessary
so I can post an abridged copy of the code but I can't say exactly how
I fixed it.

I'd just like to thank everybody for their suggestions and help in C++
code. I really appreciate it.

-Muz

#ifndef threedeematrix_ h
#define threedeematrix_ h

using namespace std;
typedef unsigned char BYTE;

template <class pixel_data>
class C3DVector
{
public:

inline C3DVector():m_d imRow(0), m_dimCol(0), m_dimZed(0),
m_3DVector(NULL ){}
inline C3DVector(int nRow, int nCol, int
nZed):m_dimRow( nRow),m_dimCol( nCol),m_dimZed( nZed), m_3DVector(new
pixel_data[nRow*nCol*nZed])
{}

inline C3DVector(const C3DVector<pixel _data>& source)
{
copyelements(so urce);
}

~C3DVector();
C3DVector<pixel _data>& operator= (C3DVector<pixe l_data>& source);
void copyelements(co nst C3DVector<pixel _data>& source);
pixel_data& operator() (int x, int y, int z) const;
void getdimensions (unsigned int& row, unsigned int& col, unsigned
int& zed)const;

// the following functions are only defined for C3DVector<BYTE>
void writegreybmp(in t colourcomponent , CString outputfilename,
BITMAPFILEHEADE R bfh, BITMAPINFOHEADE R bih, bool popupbox);
void writecolourbmp( CString outputfilename, BITMAPFILEHEADE R bfh,
BITMAPINFOHEADE R bih, bool popupbox);
bool capturecolourbm p(CString m_csInputFilena me);

protected:
unsigned int m_dimRow;
unsigned int m_dimCol;
unsigned int m_dimZed;
pixel_data* m_3DVector;
static const int RED=0, GREEN=1, BLUE=2;
};
#endif

Mar 14 '06 #10

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

Similar topics

6
2153
by: Nobody | last post by:
This is sort of my first attempt at writing a template container class, just wanted some feedback if everything looks kosher or if there can be any improvements. This is a template class for a binary search tree. Note there is a requirement for this to be a Win32/MFC "friendly" class, thus the use of CObject and POSITION. There is also a requirement for there not to be a separate iterator class. template <class TYPE, class ARG_TYPE =...
3
2070
by: jack | last post by:
Hi there, I have a function F(x, y, z) and I want to calculate f(a) + f(b), where f(x) = F(x, x, z0) z0 is fixed. Suppose somebody wrote a routine called "Compute" which simply computes f(a) + f(b) for any one dimensional function f. Then I create a f1dim which converts any n-dimensional function
2
1746
by: Indrawati Yahya | last post by:
Hi I am having trouble in defining a templated class' copy constructor. Here is the simplest code that represent my problem: template<typename T1> class Foo { public: Foo(T1 bar = T1()): _bar(bar), _cached(false) {}
3
1382
by: yomgui | last post by:
Hi, The following code compiles on Unix but refuse to do so with devstudio6 can anyone help me to get it right ? (ie for visual studio) template <class T> class AutoPtr { public:
14
2892
by: Bart Samwel | last post by:
Hi everybody, I would really like some help explaining this apparent discrepancy, because I really don't get it. Here is the snippet: void foo(int&); void foo(int const&); template<typename T>
3
10267
by: Martin Vorbrodt | last post by:
In "C++ Templates, The Complete Guide" i read that template copy-con is never default copy constructor, and template assignment-op is never a copy assignment operator. Could someone please explain how I could declate/override the two. Thanx
13
2913
by: MurphyII | last post by:
Just a little sample : class A { public: A( ) { } template<typename T> A( const typename T& a) {
4
1833
by: Deep | last post by:
Can I use a class in this manner, where a constructor is of templated: template<typename T> class my_class{ public: int x_; public: template<typename U> my_class(const my_class<U>& other ) : x_(other.x_){} };
3
1540
by: Fred Kleinschmidt | last post by:
I have a template:: template <class Vclass Vct { public: Vct(V); }; template <class V> Vct<V>::Vct( V vin ) { /*...*/
0
8448
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8871
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8783
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...
0
8640
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
6198
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
5666
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
4198
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...
0
4369
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
1776
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.