954,483 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Having trouble calling certain functions

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.

3nCrypti0n
Newbie Poster
6 posts since Jul 2005
Reputation Points: 10
Solved Threads: 0
 
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.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

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

3nCrypti0n
Newbie Poster
6 posts since Jul 2005
Reputation Points: 10
Solved Threads: 0
 

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

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 
#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

hkdani
Posting Pro in Training
435 posts since Nov 2007
Reputation Points: 49
Solved Threads: 47
 

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.

Duoas
Postaholic
2,043 posts since Oct 2007
Reputation Points: 1,140
Solved Threads: 229
 
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

hkdani
Posting Pro in Training
435 posts since Nov 2007
Reputation Points: 49
Solved Threads: 47
 

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 and linking errors. The question was answered.

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

Duoas
Postaholic
2,043 posts since Oct 2007
Reputation Points: 1,140
Solved Threads: 229
 
I give you this by way of welcome and advice. Take it as you will.

Thanks, for the welcome.

I feel much better now.

hkdani
Posting Pro in Training
435 posts since Nov 2007
Reputation Points: 49
Solved Threads: 47
 

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.
:-/ :)

Duoas
Postaholic
2,043 posts since Oct 2007
Reputation Points: 1,140
Solved Threads: 229
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You