|
I posted a thread about how to detect cdrw and MO,but it didn't get appropriate answer.I just use the way as showed below to do it.
/ **************************************************
**
BOOL GetDriveGeometry(HANDLE hDevice, PGET_MEDIA_TYPES pMediaTypes)
{
DWORD dwOutBytes;
BOOL bResult;
bResult = :eviceIoControl(hDevice,
IOCTL_STORAGE_GET_MEDIA_TYPES_EX,
NULL, 0,
pMediaTypes, MEDIA_INFO_SIZE,
&dwOutBytes,
(LPOVERLAPPED)NULL);
return bResult;
}
**************************************************
***
I can get all CD driver(including cdrom and cdrw,but just as CD driver) with GetDriveProperty.The reason why I get cdrw as CD driver because their value of
"pMediaTypes->MediaInfo[0].DeviceSpecific.DiskInfo.MediaType" all is "CD_ROM".
I want to know the driver's r/w attribute by its parameter of
"pMediaTypes->MediaInfo[0].DeviceSpecific.DiskInfo.MediaCharacteristics" ,but result is still "read only".
please give me some suggestion.
thank you.
Happy Gemini
|
|
|
|
|
I'm working on a document and am looking to use standard terminology where possible:
There are built-in data types (e.g., int, float, char*, etc) and there are objects. I'm looking for a commonly used term that refers to either. Is there such a term?
Is there a name for the program initialization activity when global C++ objects are initialized at run time? (This happens before main() gets invoked I know, but what is this initialization activity called?)
Thanks,
Matt
|
|
|
|
|
for the first one it is identifier and for the second one startup, bootloader, prolog.
My God is more powerfull Than Your God. (the line that divides the world)
|
|
|
|
|
Matthew Busche wrote:
There are built-in data types (e.g., int, float, char*, etc) and there are objects. I'm looking for a commonly used term that refers to either. Is there such a term?
Intrinsic types are built-in.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi!
I need to create resizable dialog window with title, close box and NO ICON. I tried to set resizing border and "hide" icon with resource editor but it looks impossible. When I set "palette window" true, icon disappears, but I don't need palette window.
How to remove it? I tried to make icon transparent, but margin on title bar looks a bit strange
|
|
|
|
|
Hey all,
I have a minor design issue here. I've uploaded this picture to illustrate it:
http://www.blacksmith-studios.dk/example_dlg.jpg
Imagine the user can select various actions in the list control on the left. Then I'd like to show some appropriate properties for the selected action. That is, the actions are different and therefore require a different set of properties.
I've thought of the following solutions:
- Make a borderless dialog and create it with the width and height that matches the right group-control's size (thus creating a new class for every new property window to handle the user interaction!?).
- Make some kind of property list control.. It's just that I don't know if it's possible to display all the options I want in a listcontrol!
Since I'm no expert at all on MFC I'd really like some of you guys' input on how to achieve the desired effect!
Thanks in advance,
Soren Dreijer
|
|
|
|
|
I want to know the right code MFC to obtain the IP of the Current system and that of allthe nodes of the network it is sharing???
May the Lord bless thee abundantly
|
|
|
|
|
Chechi wrote:
I want to know the right code MFC to obtain the IP of the Current system...
Try gethostname() followed by gethostbyname() .
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
i am going slightly out of track, but my question is that is it possible to obtain ipaddress of a computer, when it is not connected to network. say u run mfc application on your computer and it prints out the ipaddress of your machine. i was wondering if there was any function available in mfc for this purpose.
thanks.
Avi
|
|
|
|
|
aroraavinash wrote:
i was wondering if there was any function available in mfc for this purpose.
No, but there are plenty of classes available here at CP.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I tried it and got the address as 127.0.0.1 and am not sure it is right or not..
Please do help..
May the Lord bless thee abundantly
|
|
|
|
|
Chechi wrote:
and that of allthe nodes of the network it is sharing???
Take a look at:
WNetEnumResource function continues an enumeration of network resources that was started by a call to the WNetOpenEnum function.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
Hi all,
I have the following situation: I have a MyDataSource.h and MyDataSource.cpp files that define and implement a simple C++ templated class:
// MyDataSource.h file
<code>
#ifndef _MYDATASOURCE_H
#define _MYDATASOURCE_H
template <class T>
class Test
{
public:
Test(T * source);
~Test();
void TestMethod();
private:
T* m_source;
};
#endif
</code>
// MyDataSource.cpp file
<code>
#include "MyDataSource.h"
template <class T>
Test::Test(T * source)
:m_source(source)
{}
template <class T>
Test::~Test()
{}
template <class T>
void Test::TestMethod()
{}
</code>
However, when I compile this. I get the following build errors that I have been unable to resolve.
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(4): error C2955: 'Test' : use of class template requires template argument list
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(6): error C2244: 'Test<T>::__ctor' : unable to match function definition to an existing declaration
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(9): error C2955: 'Test' : use of class template requires template argument list
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(10): error C2244: 'Test<T>::~Test' : unable to match function definition to an existing declaration
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(13): error C2955: 'Test' : use of class template requires template argument list
i:\Thesis\Source Code\App\TemplateTests\MyDataSource.cpp(14): error C2244: 'Test<T>::TestMethod' : unable to match function definition to an existing declaration
However, if I put the implementation in the .h file, then everything compiles fine. What do I need to do to get rid of these errors?
Thanks,
Sincerely,
Xargon
Without struggle, there is no progress
|
|
|
|
|
pankajdaga wrote:
What do I need to do to get rid of these errors?
Do what you already tried - put it into the header file.
VC++ (and almost all other C++ compilers) currently can't compile a template where the declaration of a template class is separate from it's implementation. This is addressed through the export template feature in the C++ standard. However, pretty much nobody supports it because it's a freaking pain in the arse to do. For the time being, keep it all in the same file.
--
Ian Darling
"The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
|
|
|
|
|
Ian Darling wrote:
VC++ (and almost all other C++ compilers) currently can't compile a template where the declaration of a template class is separate from it's implementation. This is addressed through the export template feature in the C++ standard. However, pretty much nobody supports it because it's a freaking pain in the arse to do. For the time being, keep it all in the same file.
Sorry to say, but this is not entirely correct IMHO. The OPs problem is that he didn't use the right syntax as he forgot the template parameter after the class name:
template <class T> Test<T>::Test(T* source)
It's not necessary to define the template at the point of declaration (i.e. in the header file). It's perfectly legal to define the template in a cpp file. However, it's true that the declaration and the definition has to be in the in the same translation unit, and one solution to this is to put the definition in the header along with the declaration. I usually put the definition of template member functions in a .inc (include) file that is included at the end of the .h file, but that's just my personal preference.
What is true is that you cannot export a template - you'll get a LNK2001 error. Since templates are a compile-time object it doesn't make sense to export it anyway, so the C++ standard should be changed to omit the export template feature. What you can do is export instantiations of the template (unless you use VC++ 6.0 which will give you an internal compiler error if you try).
Cheers
Steen.
"To claim that computer games influence children is ridiculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
You can put it in its own cpp file.
template <class T> class Test
{
public:
Test(T * source);
~Test();
void TestMethod();
private:
T* m_source;
};
// in cpp
template <class T> Test<T>::Test(T* source)
{
}
template <class T> Test<T>::~Test()
{
}
template <class T> void Test<T>::TestMethod()
{
}
This works for me 2002
Thank You
Bo Hunter
|
|
|
|
|
HI
I'm trying to link two pieces of code. One is written using MFC and the other isn't.
If I enable Debug Multithreaded DLL (in Project, Settings, C/C++, Code Generation) then the non MFC code generates multiple errors :
"error LNK 2001 unresolved external "
If I change Debug Multithreaded DLL to Debug Multithreaded then the non MFC code compiles correctly but the MFC code doesn't link and generates the following error.
"fatal error C1189: #error: Please use the /MD switch for _AFXDLL builds"
Does anyone know a way of linking the two projects together or of compiling them in the one VC++ environment but with different settings?
Thanks
Debs
|
|
|
|
|
The Debug Multithreaded DLL setting is correct. Please post your LNK2001 errors, then we might be able to assist. Typically it means you haven't linked a required import library (if referring to a system function) or that one module is compiled as C++, but the other as C, with the linker expecting mangled ('decorated') or non-mangled names, but getting the other, depending on which is which.
|
|
|
|
|
Hi Mike
The problem is that I am trying to use code that produces accurate time stamps from an NTP server in another piece of code that transmits packets of information across the network. I need to be able to accurately time the packet transmission.
However my problem is that the NTP code that I'm using only compiles correctly when its set to Link to the static libraries whilst my transmission code is based on MFC and only compiles correctly when set to link with dynamic libraries. I know I'm not supposed to mix dynamic and static links. Is there any way around this problem? Do you know if i can link each piece of code seperately and still use the NTP code to obtain a timestamp in my transmission code or if I can change either of these pieces of code from static to dynamic or vice versa?
I hope you can help me. I've been searching the web and I'm at my wits end. I've included the errors below for both settings.
Thank you
Debs
Setting as Debug Multithreaded
MFC_socket.cpp
c:\program files\microsoft visual studio\vc98\mfc\include\afxver_.h(130) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
StdAfx.cpp
c:\program files\microsoft visual studio\vc98\mfc\include\afxver_.h(130) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
Generating Code...
Compiling...
TSCtime.c
Generating Code...
Error executing cl.exe.
Setting as Debug Multithreaded DLL
Compiling...
MFC_socket.cpp
StdAfx.cpp
Generating Code...
Compiling...
TSCtime.c
Generating Code...
Linking...
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
MFC_socket.obj : error LNK2001: unresolved external symbol "unsigned __int64 basest" (?basest@@3_KA)
MFC_socket.obj : error LNK2001: unresolved external symbol "unsigned __int64 tscfreq" (?tscfreq@@3_KA)
MFC_socket.obj : error LNK2001: unresolved external symbol "unsigned __int64 basetsc" (?basetsc@@3_KA)
MFC_socket.obj : error LNK2001: unresolved external symbol "void __cdecl recalibrate(void)" (?recalibrate@@YAXXZ)
MFC_socket.obj : error LNK2001: unresolved external symbol "unsigned __int64 recalinterval" (?recalinterval@@3_KA)
MFC_socket.obj : error LNK2001: unresolved external symbol "unsigned __int64 lastrecal" (?lastrecal@@3_KA)
Debug/MFC_socket_try1_10Nov.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.
|
|
|
|
|
Thought so. It appears to be an extern "C" problem. You either need to put an extern "C" block around the declarations of these variables and functions in the header (guarded with #ifdef __cplusplus ), or you should compile the NTP code as C++ (using the /TP switch to the compiler). I generally prefer the first option, because legacy code in my experience tends to use the word new somewhere along the line...
Out of interest, why does the NTP code only work when compiled with Debug Multithreaded? What errors do you get from setting Debug Multithreaded DLL?
You can get problems with heap allocations and frees if allocations happen in one module and are freed in another.
|
|
|
|
|
Thanks Mike. Second suggestion solved the immediate problem.
|
|
|
|
|
Hi all,
I am using the ssapi.dll, to work with the source safe ole automation.
My application is a visual studio add in, it checks which project is open.
I want to get the source safe connection information (ini file, user name, password) from the open project (assuming it is connected to the source safe)
can any1 show me code on how to do that???
thanks in advanced
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I am working on a project that will need some command line exe act as a important role.
But i don't like my client know those exe. Merging those tools all into a program will cost too much time. is there any tool can hide them but i can still run them from main program.
|
|
|
|
|
If you want to hide disk files programmatically, you basically have two options:
1. Use of 'ShellExec' and the 'attrib' command to set file hide/show flags
2. Use direct manipulation of the file system. I only know how to fetch file attribute flags from FILEINFO structure, but I don't know how to set them. See MSDN & The Internet for examples.
Naturally, the final option would be to take the actual .exe file and include it to your executable as a resource. Then you could execute the tool as necessary by using ShellExec and the 'res://' path identification. I am unsure of how this ultimately works, but you might wanna try it out.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
SetFileAttributes will allow you to set a file to be hidden. Of course, the user can still enable the 'Show hidden files and folders' option in Explorer.
|
|
|
|