|
You also need to include the file wininet.h in the file where you are using the API functions.
--> does it mean i have to include wininet.h in the "upload" funtion?
|
|
|
|
|
As it seems, that's not the problem.
The errors you get are all link errors, so they originates from not linking wininet.lib
|
|
|
|
|
but i need detail solution? can you or anyone help me ? please!
|
|
|
|
|
If you got VC 6 (as me), do this:
1.
Press AltF7 to get to "Project"->"Settings"
2.
In the left window (top), select "All Configurations"
3.
Click on the "Link" tab
4.
Select "Category" Input
5.
In the edit line under "Object/Library modules", go to the end of the line.
6.
write a space, followed by wininet.lib
7.
Click the "OK" button
Build (or rebuild) the project.
|
|
|
|
|
Have you Selected the proper project. Because after including the files Wininet.h and Wininet.lib the program runs perfectly well.
And if you don't include it It will give the errors as you have described
Cheers
"Peace of mind through Technology"
|
|
|
|
|
stupidmistakez wrote: but i need detail solution? can you or anyone help me ? please!
Just add the following in your Stdafx.h header file
#pragma comment(lib, "wininet");
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
Of course. I'm using it all the time, and still I forgot when I wrote my answer
|
|
|
|
|
kakan wrote: Of course. I'm using it all the time, and still I forgot when I wrote my answer
Remember next time
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
I promise
|
|
|
|
|
Open the Properties dialog of your project and go to Linker --> Input --> Additional Dependencies fiels. Type here "Wininet.lib" (use space as separator, if there are other items). Repeat this for Debug and Release configurations. Then try to build the project.
The libraries and headers you need usually are described in the documentation.
Hope it helps.
|
|
|
|
|
No you only need to include the wininet.h file where you are using the API functions at the top where you are including rest of the files
Alternatively you can include this wininet.h file in the stdafx.h file if you are using this API at various places in your project
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
plz tell me how to open a dialog box from another dialog box using MFC in a way that control can be transfered from one dialog to another simultaneously.
|
|
|
|
|
Create the second dialog box as a Modeless one.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
If you need to interact with both, make the second dialog modeless. Otherwise, if you don't need to interact with the first dialog while the second dialog is active, make the second dialog modal.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I want to place a bitmap on the other side of the toolbar which is always empty.how can i use this place.
E-Ramu
|
|
|
|
|
Here[^]
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
objective: my objective is to write a code that has gui buttons, just by simply drag and drop i have to create a flow chart(same as the controls what we use in MFC). Does any one know how to do it. Help me.
KIRAN PINJARLA
|
|
|
|
|
See Here[^]
Cheers
"Peace of mind through Technology"
|
|
|
|
|
My first suggestion would be to break this problem down into several, smaller ones (e.g., one project with GUI buttons, one project that supports drag-and-drop, one project that allows drawing flowcharts). Solve them each individually, and then solve the project as a whole.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hello
In Visaul Studio, I create a button in childview by CButton.create. Then I run the PPC emulator. I use the button in childview and the left key in navigation control set to call the specified function. When I press the left key, I can use the WM_KeyDown to call the specified. Then I pree the button, I can use
the OnCommand to call the specified function. Once I press the left key, but
I can't get the WM_KeyDown message.
What function or what setting are necessary to solve the question.
Thanks a lot
1
|
|
|
|
|
hi there,
which is the best way to add class objects at
program (c++) run-time?
thanx,
di troia
|
|
|
|
|
Uuuh ??
What do you mean by 'adding a class at runtime' ? You can't do such a thing (not directly I mean)
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
He was saying 'adding objects' ... ?!
Then it would be new
Maxwell Chen
|
|
|
|
|
Maxwell Chen wrote: He was saying 'adding objects' ... ?!
Then it would be new
ASSERT(adding != creating);
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
|
|
|
|
|
Hi all.
It's me again with another question regarding calling a process out of my program and reuse the output of it. I managed to get the output of the child process by using CreatePipe and CreateProcess (like described in the MSDN article Creating a Child Process with Redirected Input and Output). The problem is: i can't run any program i like. I tried with ipconfig and it works as a charm, when i tried dir, i get the filenames of the directory, but not as expected. I can't get the same output as in the command shell.
Example (i call a simple dir command from my program):
<br />
ExecCommand cmd;<br />
char* myCmd = cmd.Execute("dir C:\\");<br />
myCmd:
AUTOEXEC.BAT NTDETECT.COM hiberfil.sys
bla.bat bla2.bat blubb.exe
... ... ...
shouldn't the dir command return something like:
Volume in drive C is System
Volume Serial Number is D415-C6D2
Directory of C:\
05.04.2006 12:12 0 AUTOEXEC.BAT
05.04.2006 12:12 0 CONFIG.SYS
06.04.2006 10:34 <DIR> bla
...
And what about the return of a directory that contains a lot of files (like C:\WINDOWS\system32\)
My application freezes when i do char* myCmd = cmd.Execute("dir C:\\WINDOWS\\system32\\")
Thanks in advance,
n.
<br />
#include "stdafx.h"<br />
#include "ExecCommand.h"<br />
<br />
#define BUFSIZE 4096<br />
<br />
HANDLE hChildStdinRd, hChildStdinWr, hChildStdoutRd, hChildStdoutWr, hInputFile, hStdout;<br />
<br />
<br />
ExecCommand::ExecCommand()<br />
{<br />
<br />
}<br />
<br />
ExecCommand::~ExecCommand()<br />
{<br />
<br />
}<br />
<br />
<br />
char* ExecCommand::Execute(char* szCmdline)<br />
{<br />
SECURITY_ATTRIBUTES saAttr;<br />
bool fSuccess = false;<br />
<br />
<br />
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);<br />
saAttr.bInheritHandle = TRUE;<br />
saAttr.lpSecurityDescriptor = NULL;<br />
<br />
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);<br />
<br />
if (! CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0))<br />
ErrorExit("Stdout pipe creation failed\n");<br />
<br />
SetHandleInformation(hChildStdoutRd, HANDLE_FLAG_INHERIT, 0);<br />
<br />
fSuccess = CreateChildProcess(szCmdline);<br />
if (! fSuccess)<br />
ErrorExit("Create process failed with");<br />
<br />
<br />
return ReadFromPipe();<br />
<br />
}<br />
<br />
bool ExecCommand::CreateChildProcess(char* szCmdline)<br />
{ <br />
<br />
PROCESS_INFORMATION piProcInfo;<br />
STARTUPINFO siStartInfo;<br />
bool bFuncRetn = false;<br />
<br />
ZeroMemory(&piProcInfo, sizeof(PROCESS_INFORMATION));<br />
<br />
ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));<br />
siStartInfo.cb = sizeof(STARTUPINFO);<br />
siStartInfo.hStdError = hChildStdoutWr;<br />
siStartInfo.hStdOutput = hChildStdoutWr;<br />
siStartInfo.hStdInput = hChildStdinRd;<br />
siStartInfo.wShowWindow = SW_HIDE; <br />
siStartInfo.dwFlags |= STARTF_USESTDHANDLES;<br />
siStartInfo.dwFlags |= STARTF_USESHOWWINDOW;<br />
<br />
bFuncRetn = CreateProcess(NULL, <br />
szCmdline,
NULL,
NULL,
TRUE,
0,
NULL,
NULL,
&siStartInfo,
&piProcInfo);
<br />
<br />
<br />
if (bFuncRetn == 0) ErrorExit("CreateProcess failed\n");<br />
else<br />
{<br />
WaitForSingleObject(piProcInfo.hProcess, INFINITE);<br />
CloseHandle(piProcInfo.hProcess);<br />
CloseHandle(piProcInfo.hThread);<br />
return bFuncRetn;<br />
}<br />
}<br />
<br />
char* ExecCommand::ReadFromPipe()<br />
{<br />
DWORD dwRead, dwWritten;<br />
static char chBuf[BUFSIZE];<br />
<br />
if (!CloseHandle(hChildStdoutWr))<br />
ErrorExit("Closing handle failed");<br />
<br />
for (;;)<br />
{<br />
if (! ReadFile(hChildStdoutRd, chBuf, BUFSIZE, &dwRead, NULL) || dwRead == 0) break;<br />
if (! WriteFile(hStdout, chBuf, dwRead, &dwWritten, NULL)) break;<br />
}<br />
<br />
return chBuf;<br />
}<br />
<br />
void ExecCommand::ErrorExit(LPTSTR lpszMessage)<br />
{<br />
fprintf(stderr, "%s\n", lpszMessage);<br />
ExitProcess(0);<br />
}<br />
|
|
|
|