Im making this program. But im having trouble calling certain functions. Im having trouble calling ShellExecute, RemoveDirectory, CreateDirectory, FindFirstFile, & DeleteFile.

I get the following errors when trying to compile...

c:\documents and settings\george\my documents\visual studio 2005\projects\mmpc v1.0\mmpc v1.0\prog.cpp(42) : error C2664: 'ShellExecuteW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\george\my documents\visual studio 2005\projects\mmpc v1.0\mmpc v1.0\prog.cpp(116) : error C2664: 'ShellExecuteW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\george\my documents\visual studio 2005\projects\mmpc v1.0\mmpc v1.0\prog.cpp(168) : error C2664: 'CreateDirectoryW' : cannot convert parameter 1 from 'const char [8]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\george\my documents\visual studio 2005\projects\mmpc v1.0\mmpc v1.0\prog.cpp(214) : error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'const char [13]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\george\my documents\visual studio 2005\projects\mmpc v1.0\mmpc v1.0\prog.cpp(226) : error C2664: 'DeleteFileW' : cannot convert parameter 1 from 'const char [14]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

I never had this problen when working with DevC++. But ever since I moved to Microsoft Visual C++ 2005, I cant compile this program. Im calling the functions correctly. For example with the ShellExecute function

ShellExecute(0, "open", "MMPC.html", 0, 0, SW_SHOWNORMAL)

But it still gives me an error.

Please Help! Thanks in advance.

Recommended Answers

All 9 Replies

ShellExecute(0, "open", TEXT("MMPC.html"), 0, 0, SW_SHOWNORMAL)

The TEXT macro either does nothing to the string literal, or prepends L to make it a wide string literal. The errors suggest, that in your setup, a wide string literal is expected. Now, you could just explicitly make the literal wide:

ShellExecute(0, "open", L"MMPC.html", 0, 0, SW_SHOWNORMAL)

But then it would fail for a setup where a narrow string literal is expected.

I already tried both methods and I still get the same error.

It sounds like a configuration issue with Visual Studio 2005. Play around with any settings that suggest wchar_t or Unicode.

#include <windows.h>

int main() 
{

....
}

You need to link against the shell32.lib when compiling.

Not familiar with the IDE, but on the command line

c:\> cl /EHs prog.cpp /link shell32.lib

First off, your response has nothing to do with the OP's problem.

Secondly, don't resurrect two year old threads unless you have something amazingly earthshaking to contribute.

First off, your response has nothing to do with the OP's problem.

Had the same problem. Same messages. That was my solution offered up on the friendly, Microsoft Managed newsgroup. It's an answer from my humble experience.

Secondly, don't resurrect two year old threads unless you have something amazingly earthshaking to contribute.

If it works, who needs it be earthshaking?
I'm a newb here. And don't exactly appreciate the 'cold' welcome on my first post.

But I do appreciate the fine article on the site about the fellow who enjoyed the forum because of the friendliness of the people on the forum.

Hank

I'm sorry you took my response that way, but you are the one being arrogantly rude.

Since you are new to the forum you might want to take some time to read the Forum Announcements.

Those of us who like to take the time to help people here don't like it when some newbie shows up and in his second post starts doing things universally considered obnoxious. Please take the kind hint.

Had Narue or WaltP or Salem or someone else like them (who are all very knowledgeable and very helpful) responded, you might have gotten a much less friendly response --as they have dealt with a lot more snot than I have, and have a much lower tolerance for it.

If you plan to behave and be nice, welcome. Remember, words online are easily misinterpreted whereas in direct conversation they wouldn't be. Don't assume the worst.

Also, don't assume the OP and Narue are blindingly stupid. They were both well beyond including <windows.h> and linking errors. The question was answered.

I give you this by way of welcome and advice. Take it as you will.

I give you this by way of welcome and advice. Take it as you will.

Thanks, for the welcome.

I feel much better now.

I've had my bad moments too. I'm fairly new myself, and on my second or third post I managed to offend several people who disagreed with me about something...

Alas.
:-/ :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.