473,763 Members | 1,883 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

LNK1120 when compiling a C++ library to .NET managed code

When I build a C++ library to .NET using the managed C++ compiler, I get the
following error message:

Linking...
LINK : error LNK2020: unresolved token (0A000005) _CrtDbgReport
LINK : error LNK2020: unresolved token (0A000007) memset
LINK : error LNK2020: unresolved token (0A000008) free
LINK : error LNK2020: unresolved token (0A00000A) atexit
LINK : error LNK2020: unresolved token (0A000028) wcscpy
LINK : error LNK2020: unresolved token (0A00002D) _CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000031) delete
LINK : error LNK2020: unresolved token (0A00003C) delete[]
LINK : error LNK2020: unresolved token (0A000045) malloc
LINK : error LNK2020: unresolved token (0A000049) memmove
LINK : error LNK2020: unresolved token (0A000054) memcpy
LINK : error LNK2020: unresolved token (0A000060) strlen
LINK : error LNK2020: unresolved token (0A000067) bad_cast.__ctor
LINK : error LNK2020: unresolved token (0A0000A6) exception.__dto r
LINK : error LNK2020: unresolved token (0A0000A7) exception.__cto r
LINK : error LNK2020: unresolved token (0A0000A8) exception.__cto r
LINK : fatal error LNK1120: 16 unresolved externals

Note that "Ignore All Default Libraries" is set to "No" and that the code
builds fine when using the unmanaged C++ compiler and targetting native
code. If I use the DLL version of the library, I get a slightly different
list of errors.

What should I do to get this to build correctly?

Thanks,
Aaron Queenan.
Nov 16 '05 #1
4 11362
I've just added MSVCRTD.LIB MSVCPRTD.LIB to the list of libraries, but I now
get the following errors:

Field.obj : error LNK2001: unresolved external symbol "char * __cdecl
strdup(char const *)" (?strdup@@$$J0Y APADPBD@Z)
Platform.obj : error LNK2001: unresolved external symbol "int __cdecl
putenv(char const *)" (?putenv@@$$J0Y AHPBD@Z)
Platform.obj : error LNK2001: unresolved external symbol "char * __cdecl
strupr(char *)" (?strupr@@$$J0Y APADPAD@Z)

These are pretty wierd, since they have C++ symbol names even though they
are C functions. Even putting :: in front of the functions where called
doesn't fix the problem.

If I use the static MT libraries the problem goes away, but of course things
like putenv() won't work across two instances of the static libraries, so it
isn't really what I want to do.

What else can I try?

Thanks,
Aaron Queenan.

"Aaron Queenan" <aq************ *********@conti ngent.com.au> wrote in message
news:OW******** *****@TK2MSFTNG P11.phx.gbl...
When I build a C++ library to .NET using the managed C++ compiler, I get the following error message:

Linking...
LINK : error LNK2020: unresolved token (0A000005) _CrtDbgReport
LINK : error LNK2020: unresolved token (0A000007) memset
LINK : error LNK2020: unresolved token (0A000008) free
LINK : error LNK2020: unresolved token (0A00000A) atexit
LINK : error LNK2020: unresolved token (0A000028) wcscpy
LINK : error LNK2020: unresolved token (0A00002D) _CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000031) delete
LINK : error LNK2020: unresolved token (0A00003C) delete[]
LINK : error LNK2020: unresolved token (0A000045) malloc
LINK : error LNK2020: unresolved token (0A000049) memmove
LINK : error LNK2020: unresolved token (0A000054) memcpy
LINK : error LNK2020: unresolved token (0A000060) strlen
LINK : error LNK2020: unresolved token (0A000067) bad_cast.__ctor
LINK : error LNK2020: unresolved token (0A0000A6) exception.__dto r
LINK : error LNK2020: unresolved token (0A0000A7) exception.__cto r
LINK : error LNK2020: unresolved token (0A0000A8) exception.__cto r
LINK : fatal error LNK1120: 16 unresolved externals

Note that "Ignore All Default Libraries" is set to "No" and that the code
builds fine when using the unmanaged C++ compiler and targetting native
code. If I use the DLL version of the library, I get a slightly different
list of errors.

What should I do to get this to build correctly?

Thanks,
Aaron Queenan.

Nov 16 '05 #2
I'm getting exactly the same problem.

It appears to occur only when I include standard library
components. The errors differ very slightly depending on
which standard #include files I use but are always a list
of LNK2020 unresolved tokens followed by a LNK1120.

I've tried putting #pragma unmanaged/managed statements in
a variety of different positions around both the standard
#include <> 's, the function prototypes and the function
bodies all to no avail.
---
Examples:
---
#include "stdafx.h"
#include <string>
#pragma unmanaged
class stltest
{
public:
int a;
int b;
std::string s;
};
#pragma managed

produces:
------ Build started: Project: mtest1, Configuration:
Debug Win32 ------

Compiling...
Stdafx.cpp
Compiling...
stltest.cpp
mtest1.cpp
AssemblyInfo.cp p
Generating Code...
Compiling resources...
Linking...
LINK : error LNK2020: unresolved token (0A000013)
_CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000023) delete
LINK : fatal error LNK1120: 2 unresolved externals

---
Whereas moving the #pragma's around a little:

#include "stdafx.h"

#pragma unmanaged
#include <string>

class stltest
{
public:
int a;
int b;
std::string s;
};
#pragma managed

produces:

Compiling...
stltest.cpp
mtest1.cpp
Generating Code...
Linking...
mtest1.obj : error LNK2019: unresolved external symbol
_memcpy referenced in function "public: static char *
__cdecl std::char_trait s<char>::copy(c har *,char const
*,unsigned int)" (?copy@?
$char_traits@D@ std@@SAPADPADPB DI@Z)
stltest.obj : error LNK2001: unresolved external symbol
_memcpy
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol _memcpy
mtest1.obj : error LNK2019: unresolved external symbol
_memmove referenced in function "public: static char *
__cdecl std::char_trait s<char>::move(c har *,char const
*,unsigned int)" (?move@?
$char_traits@D@ std@@SAPADPADPB DI@Z)
stltest.obj : error LNK2001: unresolved external symbol
_memmove
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol _memmove
mtest1.obj : error LNK2019: unresolved external
symbol "void __cdecl operator delete(void *)" (??
3@YAXPAX@Z) referenced in function "public: void
__thiscall std::allocator< char>::dealloca te(char
*,unsigned int)" (?deallocate@?
$allocator@D@st d@@QAEXPADI@Z)
stltest.obj : error LNK2001: unresolved external
symbol "void __cdecl operator delete(void *)" (??
3@YAXPAX@Z)
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol "void __cdecl operator delete(void *)" (??
3@YAXPAX@Z)
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol "void __cdecl operator delete(void *)" (??
3@YAXPAX@Z)
mtest1.obj : error LNK2019: unresolved external symbol
___CxxFrameHand ler referenced in function __ehhandler$?
_Copy@?$basic_s tring@DU?$char_ traits@D@std@@V ?
$allocator@D@2@ @std@@IAEXII@Z
stltest.obj : error LNK2019: unresolved external symbol
___CxxFrameHand ler referenced in function $L12690
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol ___CxxFrameHand ler
mtest1.obj : error LNK2019: unresolved external symbol
__except_list referenced in function "protected: void
__thiscall std::basic_stri ng<char,struct
std::char_trait s<char>,class std::allocator< char> >::_Copy
(unsigned int,unsigned int)" (?_Copy@?$basic _string@DU?
$char_traits@D@ std@@V?$allocat or@D@2@@std@@IA EXII@Z)
stltest.obj : error LNK2001: unresolved external symbol
__except_list
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol __except_list
mtest1.obj : error LNK2019: unresolved external symbol
__CxxThrowExcep tion@8 referenced in function $L12724
stltest.obj : error LNK2001: unresolved external symbol
__CxxThrowExcep tion@8
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol __CxxThrowExcep tion@8
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol __CxxThrowExcep tion@8
mtest1.obj : error LNK2019: unresolved external symbol
_free referenced in function "void __cdecl
std::_DebugHeap Delete<void>(vo id *)" (??
$_DebugHeapDele te@X@std@@YAXPA X@Z)
stltest.obj : error LNK2001: unresolved external symbol
_free
libcpmtd.lib(xl ock.obj) : error LNK2019: unresolved
external symbol _atexit referenced in function _$E1
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol _atexit
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol "public: __thiscall exception::exce ption
(class exception const &)" (??0exception@@ QAE@ABV0@@Z)
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol "public: __thiscall exception::exce ption
(class exception const &)" (??0exception@@ QAE@ABV0@@Z)
libcpmtd.lib(st ring.obj) : error LNK2001: unresolved
external symbol "const type_info::`vft able'" (??
_7type_info@@6B @)
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol "const type_info::`vft able'" (??
_7type_info@@6B @)
libcpmtd.lib(st ring.obj) : error LNK2019: unresolved
external symbol "public: virtual __thiscall
exception::~exc eption(void)" (??1exception@@ UAE@XZ)
referenced in function $L12220
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol "public: virtual __thiscall
exception::~exc eption(void)" (??1exception@@ UAE@XZ)
libcpmtd.lib(st ring.obj) : error LNK2019: unresolved
external symbol "public: __thiscall exception::exce ption
(void)" (??0exception@@ QAE@XZ) referenced in
function "public: __thiscall std::logic_erro r::logic_error
(class std::basic_stri ng<char,struct
std::char_trait s<char>,class std::allocator< char> > const
&)" (??0logic_error @std@@QAE@ABV?$ basic_string@DU ?
$char_traits@D@ std@@V?$allocat or@D@2@@1@@Z)
libcpmtd.lib(st ring.obj) : error LNK2019: unresolved
external symbol _strlen referenced in function "public:
static unsigned int __cdecl std::char_trait s<char>::lengt h
(char const *)" (?length@?$char _traits@D@std@@ SAIPBD@Z)
libcpmtd.lib(xd ebug.obj) : error LNK2019: unresolved
external symbol __malloc_dbg referenced in function "void
* __cdecl operator new(unsigned int,struct
std::_DebugHeap Tag_t const &,char *,int)" (??
2@YAPAXIABU_Deb ugHeapTag_t@std @@PADH@Z)
libcpmtd.lib(xd ebug.obj) : error LNK2019: unresolved
external symbol __free_dbg referenced in function "void
__cdecl operator delete(void *,struct std::_DebugHeap Tag_t
const &,char *,int)" (??
3@YAXPAXABU_Deb ugHeapTag_t@std @@PADH@Z)
libcpmtd.lib(ne wop.obj) : error LNK2019: unresolved
external symbol __callnewh referenced in function "void *
__cdecl operator new(unsigned int)" (??2@YAPAXI@Z)
libcpmtd.lib(ne wop.obj) : error LNK2019: unresolved
external symbol _malloc referenced in function "void *
__cdecl operator new(unsigned int)" (??2@YAPAXI@Z)
libcpmtd.lib(no memory.obj) : error LNK2001: unresolved
external symbol "public: virtual char const * __thiscall
exception::what (void)const " (?what@exceptio n@@UBEPBDXZ)
libcpmtd.lib(no memory.obj) : error LNK2019: unresolved
external symbol "public: __thiscall exception::exce ption
(char const * const &)" (??0exception@@ QAE@ABQBD@Z)
referenced in function "public: __thiscall
std::bad_alloc: :bad_alloc(char const *)" (??
0bad_alloc@std@ @QAE@PBD@Z)
LINK : error LNK2001: unresolved external symbol
__load_config_u sed
---

Finally the following compiles quite happily (except for
complaining about a missing 'libc.pdb' file - LNK4099)
#include "stdafx.h"

#pragma unmanaged
//#include <string>

class stltest
{
public:
int a;
int b;
//std::string s;
};
#pragma managed

---

If anyone can shed any light on this I would be most
grateful.

Thanks,

Tom
-----Original Message-----
When I build a C++ library to .NET using the managed C++ compiler, I get thefollowing error message:

Linking...
LINK : error LNK2020: unresolved token (0A000005) _CrtDbgReportLINK : error LNK2020: unresolved token (0A000007) memset
LINK : error LNK2020: unresolved token (0A000008) free
LINK : error LNK2020: unresolved token (0A00000A) atexit
LINK : error LNK2020: unresolved token (0A000028) wcscpy
LINK : error LNK2020: unresolved token (0A00002D) _CxxThrowExcept ionLINK : error LNK2020: unresolved token (0A000031) delete
LINK : error LNK2020: unresolved token (0A00003C) delete[]
LINK : error LNK2020: unresolved token (0A000045) malloc
LINK : error LNK2020: unresolved token (0A000049) memmove
LINK : error LNK2020: unresolved token (0A000054) memcpy
LINK : error LNK2020: unresolved token (0A000060) strlen
LINK : error LNK2020: unresolved token (0A000067) bad_cast.__ctorLINK : error LNK2020: unresolved token (0A0000A6) exception.__dto rLINK : error LNK2020: unresolved token (0A0000A7) exception.__cto rLINK : error LNK2020: unresolved token (0A0000A8) exception.__cto rLINK : fatal error LNK1120: 16 unresolved externals

Note that "Ignore All Default Libraries" is set to "No" and that the codebuilds fine when using the unmanaged C++ compiler and targetting nativecode. If I use the DLL version of the library, I get a slightly differentlist of errors.

What should I do to get this to build correctly?

Thanks,
Aaron Queenan.
.

Nov 16 '05 #3
Tom/Aaron,
I'm having this problem too and it is driving me crazy.
Here's my code:
#pragma once

#include <vector>
#include <string>
using namespace System;

namespace DllProjectwiths tring
{
public __gc class Class1
{
};
}

Not too exciting, I was able to finally resolve these linker errors:
LINK : error LNK2020: unresolved token (0A000013) _CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000023) delete
LINK : fatal error LNK1120: 2 unresolved externals with help from this link:
http://support.microsoft.com/default...b;en-us;140584
It turned out that I was creating a DLL and needed the /MD runtime
library flag instead of /MT which seems to be default (or /MDd and
/MTd if you're in debug mode).

My problem now is I STILL can't get it to link. Here is the latest and
greatest linker error:
DllProjectwiths tring error LNK2020: unresolved token (0A000051)
??_7type_info@@ 6B@
DllProjectwiths tring fatal error LNK1120: 1 unresolved externals

If anyone has any idea as to what causes this error I'd really
appreciate it.

Eddie Chaplin

"Tom Reynoldson" <to************ *************** @complinet.com> wrote in message news:<49******* *************** ******@phx.gbl> ... I'm getting exactly the same problem.

It appears to occur only when I include standard library
components. The errors differ very slightly depending on
which standard #include files I use but are always a list
of LNK2020 unresolved tokens followed by a LNK1120.

I've tried putting #pragma unmanaged/managed statements in
a variety of different positions around both the standard
#include <> 's, the function prototypes and the function
bodies all to no avail.
---
Examples:
---
#include "stdafx.h"
#include <string>
#pragma unmanaged
class stltest
{
public:
int a;
int b;
std::string s;
};
#pragma managed

produces:
------ Build started: Project: mtest1, Configuration:
Debug Win32 ------

Compiling...
Stdafx.cpp
Compiling...
stltest.cpp
mtest1.cpp
AssemblyInfo.cp p
Generating Code...
Compiling resources...
Linking...
LINK : error LNK2020: unresolved token (0A000013)
_CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000023) delete
LINK : fatal error LNK1120: 2 unresolved externals

---

Nov 16 '05 #4
I was having the same problem. Following links helped me resolve it.

http://msdn.microsoft.com/library/de...ingProblem.asp
http://support.microsoft.com/?id=814472


ed***********@m apinfo.com (Eddie Chaplin) wrote in message news:<24******* *************** ****@posting.go ogle.com>...
Tom/Aaron,
I'm having this problem too and it is driving me crazy.
Here's my code:
#pragma once

#include <vector>
#include <string>
using namespace System;

namespace DllProjectwiths tring
{
public __gc class Class1
{
};
}

Not too exciting, I was able to finally resolve these linker errors:
LINK : error LNK2020: unresolved token (0A000013) _CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000023) delete
LINK : fatal error LNK1120: 2 unresolved externals

with help from this link:
http://support.microsoft.com/default...b;en-us;140584
It turned out that I was creating a DLL and needed the /MD runtime
library flag instead of /MT which seems to be default (or /MDd and
/MTd if you're in debug mode).

My problem now is I STILL can't get it to link. Here is the latest and
greatest linker error:
DllProjectwiths tring error LNK2020: unresolved token (0A000051)
??_7type_info@@ 6B@
DllProjectwiths tring fatal error LNK1120: 1 unresolved externals

If anyone has any idea as to what causes this error I'd really
appreciate it.

Eddie Chaplin

"Tom Reynoldson" <to************ *************** @complinet.com> wrote in message news:<49******* *************** ******@phx.gbl> ...
I'm getting exactly the same problem.

It appears to occur only when I include standard library
components. The errors differ very slightly depending on
which standard #include files I use but are always a list
of LNK2020 unresolved tokens followed by a LNK1120.

I've tried putting #pragma unmanaged/managed statements in
a variety of different positions around both the standard
#include <> 's, the function prototypes and the function
bodies all to no avail.
---
Examples:
---
#include "stdafx.h"
#include <string>
#pragma unmanaged
class stltest
{
public:
int a;
int b;
std::string s;
};
#pragma managed

produces:
------ Build started: Project: mtest1, Configuration:
Debug Win32 ------

Compiling...
Stdafx.cpp
Compiling...
stltest.cpp
mtest1.cpp
AssemblyInfo.cp p
Generating Code...
Compiling resources...
Linking...
LINK : error LNK2020: unresolved token (0A000013)
_CxxThrowExcept ion
LINK : error LNK2020: unresolved token (0A000023) delete
LINK : fatal error LNK1120: 2 unresolved externals

---

Nov 16 '05 #5

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

Similar topics

1
5892
by: Tim | last post by:
I am just creating a hellow world program and it gave me these errors. can you help me out how to resolve this? Thanks, Tim #include <iostream> using namespace std;
5
2956
by: Adam McKee | last post by:
We are using Visual Studio.NET 2003 in our project with .NET framework 1.1. One of our libraries is a mixed-mode dll assembly consisting of one managed C++ library, and several unmanaged C++ libraries. We are using managed C++ as a bridge between managed .NET code and unmanaged C++ code, which I'm sure is a fairly common practice. The managed C++ library is compiled with /CLR whereas all other libraries are compiled without /CLR because...
4
4359
by: zlatko | last post by:
Hello. I am new to .net . I have a managed C++ library. It looks like this. // header file namespace cppnetdll { public __gc class Class1 { public: static int foo_int(void);
1
2914
by: Jesse McGrew | last post by:
Hi all, I'm trying to make a plugin DLL for a third-party application, using VC++ .NET 2003. This DLL acts as a bridge between the C++ plugin API of the application, and my actual plugin code written in C#. When the app calls my unmanaged functions, they work fine. But as soon as my unmanaged functions call managed functions (in the same source file!), the app reports an "unknown exception" error.
12
3475
by: Markus Ewald | last post by:
I'm just experimenting around with the VisualC++ 2005 Express Edition Beta and found some strange behavior for which I can't seem to find a workaround. What I've done is set up two static library projects for Lua 5.0.2 and LuaBind beta-6, compiling both with no CLR support and configured to use the Multithreaded DLL runtime. Then I created a new console application which makes use of these two static libraries (of course, also set to MT...
5
2443
by: dovgani | last post by:
I have an unmanaged MFC project. The output is static lib. I would like to compile using /clr option. The native lib size is 64 megs and with /clr and /O1 options is 940 megs. Is it possibly Metadata enlarge size so dramaticlly? And I would like to know any suitable solution of my problem.
1
1526
by: caa | last post by:
I have made a simple text example. I have two projects. First is an unmanaged static lib, containing function F(), which created an object of type A and throws an exception. The second project is a C++/ME console application that calls F() and catches all exceptions with a "catch(...)" filter. The thing that I dont understand is why doesn't the auto object created on stack get destroyed. See my sources: Project 1. Unmanaged lib....
1
1672
by: £ukasz Z±bik | last post by:
I have project that uses managed c++ where I use c - library, this library contains some variables named generic, during compilation I get error: Error 1 error C2146: syntax error : missing ';' before identifier 'generic', Problem is that in dotNet generic is a keyword, and I cannot change this name becouse I have only lib file and includes. How to solve this problem? -- pozdrawiam £ukasz
3
1704
by: £ukasz | last post by:
I have project that uses managed c++ where I use c - library, this library contains some variables named generic, during compilation I get error: Error 1 error C2146: syntax error : missing ';' before identifier 'generic', Problem is with name generic, unfortunately I cannot change this name .How to solve this problem? What to do to make it work? -- Thanks, £ukasz
0
10149
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
10003
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
8825
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7370
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
6643
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
5271
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
3918
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
2
3529
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2797
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.