Creating com library with starting from empty project - c++

.
I found sample called "Creating a COM Server Using a Text Editor" in MSDN.
http://msdn.microsoft.com/en-us/library/2wad1c0e(v=vs.71).aspx
It compiles fine from command promt, but not from Visual Studio IDE.
I decided to move this project to Visual Studio.
I have created new project (File>>New>>Project>>Empty project) and add MyServer.cpp file to "Source Files" and MyIncludes.h to Header Files. I got following error after I tried to build project:
1>------ Build started: Project: Myserver, Configuration: Release Win32 ------
1>Compiling...
1>MyServer.cpp
1>.\MyServer.cpp(26) : warning C4581: deprecated behavior: '"apartment"' replaced with 'apartment' to process attribute
1>Linking...
1> Creating library C:\Myserver\Release\Myserver.lib and object C:\Myserver\Release\Myserver.exp
1>LINK : fatal error LNK1561: entry point must be defined
1>Build log was saved at "file://c:\Myserver\Myserver\Release\BuildLog.htm"
1>Myserver - 1 error(s), 1 warning(s)
========= Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
How to solve this problem?

The translation errors told you need a entry function in an EXE module.
you must define a main(...) function as the entry, otherwise is an invalid EXE since there is no startup point.
Simply, you can create an console window project for IDE, or just add main(...) manually as I said.

Related

Release build does not work - error with Eigen library?

When I build my program in debug mode, everything works fine. However, when I switch to release build, I get the following errors. It seems that there is a problem with Eigen. Could anyone please help?
1>------ Build started: Project: qtdemo, Configuration: Release Win32 ------
1> moc_qtdemo.cpp
1>c:\users\documents\visual studio 2012\projects\qtdemo\qtdemo\generatedfiles\release\../../qtdemo.h(6): fatal error C1083: Cannot open include file: 'Eigen/Dense': No such file or directory
1> main.cpp
1>c:\users\documents\visual studio 2012\projects\qtdemo\qtdemo\qtdemo.h(6): fatal error C1083: Cannot open include file: 'Eigen/Dense': No such file or directory
1> qtdemo.cpp
1>c:\users\documents\visual studio 2012\projects\qtdemo\qtdemo\qtdemo.h(6): fatal error C1083: Cannot open include file: 'Eigen/Dense': No such file or directory
1> Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
The include directories need to be set for both debug and release mode. (And, more generally, for whichever configuration you support).
This is because you may want different settings for a specific configuration mode. For example, you'd want to link to a debug library for a debug build, or turn optimizations on for a release build, and so on.
This can be done under Visual Studio through Project --> "name of project" properties --> VC++ directories, and selecting in the top bar the configuration you want to change the settings of.
Also note that setting can be changed for all the configurations at the same time by selecting "All configurations", like shown in the following picture:

WHy am I keep getting an error message or build error message?

I am using VS 2010 express but everytime when I open something in Win32 cosole application or any other projects, I keep getting build error. But everytime I start my new project with Empty Project, it always works well...nothing but Empty Project works. BTW, I coded properly and even used sample Win32 console application source codes and it still gives me an error. Is there something wrong with my computer setting?
------ Build started: Project: rwtwtwtwtw, Configuration: Debug Win32 ------
dfgdfgdf.cpp
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
If you search for LNK1123, you will find that it is very frequently caused by having VS2010 installed along with another version if Visual studio (googling for strange error codes is a useful technique!). If you have this situation, it appears that upgrading VS2010 to service pack 1 will fix it.

VC 2008 fatal error C1047 cplus fix?

Hello everyone i am using VC 2008 c++ and i got some project that isn't mine.
The project rebuilds successfully, but the problem is the project doesn't create all the .lib files that are needed for another project and so i got:
1>------ Build started: Project: application_manager, Configuration: Release Win32 ------
1>Linking...
1>LINK : warning LNK4224: /OPT:NOWIN98 is no longer supported; ignored
1>fatal error C1047: The object or library file 'C:\Users\modestas\Desktop\代码\server\../contrib/lib/tinyxml/\tinyxml_stl.lib' was created with an older compiler than other objects; rebuild old objects and libraries
1>LINK : fatal error LNK1257: code generation failed
1>Build log was saved at "file://C:\Users\modestas\Desktop\代码\server\temp\application_manager\Release\BuildLog.htm"
1>application_manager - 1 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
this project already has tinyxml_stl.lib, but the tinyxml project doesn't build a new one so i got this error how to fix this error?
The error is caused by tinyxml_stl.lib being compiled using an older version of the compiler than you are using to compile application_manager
Since your tinylib project no longer creates this file as output I assume that this is simply the result of the previous developer leaving you with a mess of files. If you change your application_manager to link to the correct binaries created by tinyxml and remove the link to tinyxml_stl.lib you should be able to compile.

VC ++ express, how do I fix this error?

I have experience programming in C#, but I'm taking a C++ class this semester, and I'm writing my second project, but I keep getting this error when I try to build a debug configuration of my program.
My build log is below, any ideas on what's going on? I'm at a loss.
Thanks everyone!
1>------ Rebuild All started: Project: Project_2, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'Project_2', configuration 'Debug|Win32'
1>Compiling...
1>main.cpp
1>Linking...
1>LINK : C:\Users\Alex\Documents\Visual Studio 2008\Projects\Project_2\Debug\Project_2.exe not found or not built by the last incremental link; performing full link
1>Embedding manifest...
1>Project : error PRJ0002 : Error result 31 returned from 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe'.
1>Build log was saved at "file://c:\Users\Alex\Documents\Visual Studio 2008\Projects\Project_2\Project_2\Debug\BuildLog.htm"
1>Project_2 - 1 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Microsoft blames antivirus for a similar case.
You should look at the buildlog.htm file that is given in the build output. It will give you more (useful) information about what has happened.
try setting your AV to ignore your project directories instead of VC++ directory.
Project : error PRJ0002 : Error result 31 returned from 'C:\Program
Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe'.
Faced the same issue Cleaning the rebuilding solved it.
I turned off the Microsoft Security Essentials and the problem is gone.
Strange that it only happened for the debug configuration.

C++ Compilation Problems with Microsoft Visual Studios 2010 Beta 1

Well, I just got the new MSVS 2010 Beta 1, and just like with 2008 express, I just can't figure out how to compile anything, not even a simple hello world program. Anyone have any pointers? I usually just get a blanket fail message. No real information.
Edit: Sorry about that
#include <iostream>
using namespace std;
main()
{
cout << "hello world";
return 0;
}
I go to build and I get:
1>------ Build started: Project: forkicks, Configuration: Debug Win32 ------
1>Embedding manifest...
1>.\Debug\forkicks.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
1>Build log was saved at "file://c:\Users\Randy\Documents\Visual Studio 2008\Projects\forkicks\forkicks\Debug\BuildLog.htm"
1>forkicks - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
That is 2008
1>------ Build started: Project: For Kicks, Configuration: Debug Win32 ------
1>Build started 7/22/2009 9:36:39 PM.
1>_PrepareForBuild:
1> Creating directory "Debug\".
1> Creating "Debug\lastbuild.timestamp" because "AlwaysCreate" was specified.
1>ClCompile:
1> main.cpp
1>c:\users\randy\documents\visual studio 10\projects\for kicks\main.cpp(5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.63
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
is 2010. I create a win32 project, name it, etc. Right click on source file, add a C++ file with no headers or anything. Just a blank document.
New 2010:
1>------ Build started: Project: hoyeah, Configuration: Debug Win32 ------
1>Build started 7/22/2009 10:03:35 PM.
1>_PrepareForBuild:
1> Creating directory "Debug\".
1> Creating "Debug\lastbuild.timestamp" because "AlwaysCreate" was specified.
1>PrepareForBuild:
1> Creating directory "C:\Users\Randy\Desktop\C++ Programs\hoyeah\Debug\".
1>ClCompile:
1> test.cpp
1>ManifestResourceCompile:
1> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7000.0
1>
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1>
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain#16 referenced in function ___tmainCRTStartup
1>C:\Users\Randy\Desktop\C++ Programs\hoyeah\Debug\hoyeah.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.25
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Edit #2. How exactly would I go about changing it to multibyte?
That's a well known problem with VS10 Beta. You need to change the default encoding to Multibyte from Unicode to make it work.
int main() maybe ?
Try also changing the destination of the project to something simpler and not that long since I believe I also had the same error when the destination was too long.
Also did you choose a console application when creating the project?
If that didn't help, google gave this as possible answers too :
"You could try going to your
project's Properties > Configuration
Properties > Manifest Tool > Input
and Output, and set your "Embed
Manifest" option to "No"."
"I had a similar problem like this a
few months ago and I solved it by
going to project -> properties ->
Configuration Properties -> General
-> Character set. Under character set I changed it to Use Multi-Byte
Character Set and then my compliment
issue went away."
Edit:
In regard to the latest error link here directly from microsoft. I'm afraid that from this point on it's google time as I'm all out of ideas if it doesn't work.
The link says : "As a workaround for Beta1 you can change the entry point to use "wmain" instead of "main" or change the character set of your project to use "Multi-Byte Character Set""
Easiest would be to just change the name of main to wmain then.
Ok, I got it to compile using a win32 console ap, changing to Multibyte, and using the following code:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!";
return 0;
}
Now to try to figure something else out. I'm not used to VS so...
Thanks everyone.