|
|
I have searched a single tutorial which will explain me a simple device driver in vC++.
But I could'nt found any tutorial as such.
Does any body knows
|
|
|
|
|
Yes, but unless you tell us exactly what operating system you want to do it for it's impossible to answer.
For at least NT drivers you can download the DDK from Microsft. Not that it's probably well over 100MB.
|
|
|
|
|
yes i want this on windows nt or 2000
|
|
|
|
|
Hi,
Anyone know how I can integrate MSDN Library with VC++.NET so when I press F1 the MSDN is to be open (not the local help in VC++.NET )??
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
Tools...Options...Help...External Help
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I know that ... but it open 'Microsoft Document explorer' with "MSDN Library - Visual Studio .NET" open.
I want to open " MSDN Library - October 2001" with "MS HTML Help"
Thanx
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
You need the newest MSDN Library. The old ones don't integrate into VS.NET
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Thanx ... I've just activate my subscription a few days ago ... do you hapen to know if they will send my the new MSDN Library as an update???
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
Orbital^ wrote:
do you hapen to know if they will send my the new MSDN Library as an update
As far as I know they do...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
I have made this function that takes a pointer to a ITEMIDLIST as a parameter that points to a folder and then loops through the items in the folder. If it is a file it adds it to the listview control, and if it is a folder it calls itself. But when it encounters a folder and calls itself the first time, the EnumObjects function fails. The ITEMIDLIST i pass in the function is the return value of the SHBrowseForFolder function. Anyone know what's wrong? Here's the code:
void AddFilesFromFolder(ITEMIDLIST *pIdl)
{
if (pIdl)
{
IShellFolder *pBrowse = NULL;
LPENUMIDLIST pFolder = NULL;
LPMALLOC pMalloc = NULL;
ITEMIDLIST *pNewId = NULL;
STRRET strDispName;
LVITEM lvItem;
RECT rMain;
RECT rAdd;
char szCurrentFile[MAX_PATH+1+5];
char szFolderPath[MAX_PATH+1];
DWORD pActual = 0;
DWORD dwAttrib;
IShellFolder *CurrentFolder;
HRESULT err;
err = SHGetDesktopFolder (&CurrentFolder);
if (err == NOERROR)
{
SHGetMalloc(&pMalloc);
CurrentFolder->BindToObject(pIdl, NULL, IID_IShellFolder, (LPVOID*)&pBrowse);
pBrowse->GetDisplayNameOf(pIdl, SHGDN_INFOLDER, &strDispName);
err = pBrowse->EnumObjects(NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &pFolder);
if (err == NOERROR)
{
SHGetPathFromIDList(pIdl, szFolderPath);
lvItem.mask = LVIF_IMAGE | LVIF_TEXT;
while (pFolder->Next(1, &pNewId, &pActual) != S_FALSE)
{
dwAttrib = SFGAO_FOLDER;
pBrowse->GetAttributesOf(1, (LPCITEMIDLIST*)&pNewId, &dwAttrib);
if (!(dwAttrib & SFGAO_FOLDER))
{
pBrowse->GetDisplayNameOf(pNewId, SHGDN_INFOLDER, &strDispName);
PathCombine(gszPath, szFolderPath, strDispName.cStr);
GetID3();
FillInfo();
ListAddItem();
}
if (dwAttrib & SFGAO_FOLDER)
{
pBrowse->GetDisplayNameOf(pNewId, SHGDN_INFOLDER, &strDispName);
AddFilesFromFolder(pNewId);
}
}
pMalloc->Free(pNewId);
pMalloc->Release();
gbFileOpen = true;
pFolder->Release();
}
CurrentFolder->Release();
}
}
}
Thankyou all!
|
|
|
|
|
I think the problem is that the pidls you get from EnumObjects() are realative to the folder
you are enumerating and your function is expecting a complete pidl.
(Make a recursive function that takes an IShellFolder * arg instead)
/Magnus
|
|
|
|
|
But how do i then get the IShellFolder interface for the current folder in the loop?
|
|
|
|
|
What do you mean with the current folder?
The current is the one passes as a param in that case.
You could to it someting like this.
start(pidl)
{
get_folder_from_pidl();
enum(folder);
}
enum(folder)
{
if(is folder)
enum(folder);
}
/Magnus
|
|
|
|
|
Does Acrobat 5.0 install a virtual printer Acrobat PDFWriter ? If not, how can i convert a MS Office document to PDF in a given path ?
Thanks.
Aziz Rajim
|
|
|
|
|
Aziz Rajim wrote:
Does Acrobat 5.0 install a virtual printer Acrobat PDFWriter
I believe so. Acrobat 3 did.
John
|
|
|
|
|
Those of you who have been following my PGP encoding problems with regard to RSA keys might be interested in knowing that the issue was with the debug mode DLLs that are supplied with PGP SDK 1.7.8
If you use the DLLs that come with PGP SDK 1.7.2 this problem will not occur. You can use the newer headers and libs, but use the older DLLs.
Of course if you actually have a full PGP installation then you need to distribute the DLLs as the DLLs are available in the system folder.
Kind regards
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
how to write a small debugger?
|
|
|
|
|
|
We have upgraded a big pure MFC project from VC6 to VC7 last week and after little changes everything seems OK except that we have 50 or so LNK2005 error regarding CString which loo like that :
------------------------------------------------------------
DUtils.lib(DUtils.dll) : error LNK2005: "public: __thiscall ATL::CStringT<char,class strtraitmfc<char,class="" atl::chtraitscrt<char=""> > >::CStringT<char,class strtraitmfc<char,class="" atl::chtraitscrt<char=""> > >(class ATL::CStringT<char,class strtraitmfc<char,class="" atl::chtraitscrt<char=""> > > const &)"
-------------------------------------------------------------
DUtils.lib(DUtils.dll) : error LNK2005: "public: __thiscall ATL::CSimpleStringT<char>::operator char const *(void)const " (??B?$CSimpleStringT@D@ATL@@QBEPBDXZ) already defined in DCAnaDisplayInfo.obj
--------------------------------------------------------------
FYI , Dutils.dll is library with generic MFC classes (derived from CEdit, Cstring ...).
Any help would be really appreciated.
Best regards,
Olivier REIX
|
|
|
|
|
Has nobody any idea why I have these link (LNK2005) errors ?
I have been searching a solution for 5 days now and I can not find anything
|
|
|
|
|
Even that I found no < > in your post, the type names seems to imply you are using template classes. Make sure your code gets instantiations of these class templates.
|
|
|
|
|
Mike Nordell wrote:
Even that I found no < > in your post, the type names seems to imply you are using template classes. Make sure your code gets instantiations of these class templates.
You are right, I use templates (mostly CList and CArray) as member variables of my classes or as parameters. Also CString is now a template in MFC 7. The code can be built with no pb on VC6 but I have the erreor on VC7.
I do not understand what you mean here : "Make sure your code gets instantiations of these class templates".
Thanks for your help
|
|
|
|
|
Also CString is now a template in MFC 7.
Oh, I didn't know that. It wouldn't surprise me if this will be a source of many problems like this.
Olivier REIX wrote:
I do not understand what you mean here : "Make sure your code gets instantiations of these class templates".
I mean exactly what I wrote.
However, your problem seems to be the completely opposite. You are from your code trying to export instantiations of the member function
operator char const *(void)const;
from the template class ATL::CSimpleStringT<char>
that is instantiated in at least DCAnaDisplayInfo.obj, but it's also instantiated somewhere else.
This obviously upsets the linker since it can't possibly know which of the two instantiations it should use.
Are you using static CRT? Then that's your problem and your code will crash if you pass your derived string class in and out of your DLL.
If you are using the DLL version of the CRT, at least (I hope) you now know what you should be looking for. If you want a more complete answer, I suggest you post more complete code.
|
|
|
|
|
Thank you for your help. I have trouble understanding what you explain but I think you guide me in the good direction.
For the version of the CRT, I think I use the DLL version but how can I be sure (I was not the one who did the configuration for this software).
Let's show some code which seems to be linked to my problem.
First in the DUtils.dll. We have a file "DUtils.h" which look like this :
(I do not know how to format the code for the forum )
*********************************
// Include file for DUTILS DLL
#pragma once
#pragma message(" --> Including "__FILE__)
// this is done so that classes are exported when building the
// DLL but imported when referencing the DLL
// class defined to be exported should have the CLASS_DUTILS
// inserted in their class definition
#ifdef DUTILS_IMPL
#define CLASS_DUTILS __declspec(dllexport)
#ifdef _DEBUG
#pragma message("Building DUtilsd.dll")
#else
#pragma message("Building DUtils.dll")
#endif
#else
#define CLASS_DUTILS __declspec(dllimport)
#ifdef _DEBUG
#pragma comment(lib, "DUtilsd")
#pragma message("Referencing DUtilsd.dll")
#else
#pragma comment(lib, "DUtils")
#pragma message("Referencing DUtils.dll")
#endif
#endif
************************
This file is included in the "stdafx.h" of the project (exe or dll) that which to use classes defined in DUtils.dll"
In the "StdAfx.h" of DUtils.dll, we have the 2 following lines :
***************************
#define DUTILS_IMPL
#include "dUtils.h"
***************************
And part of the DUtils.dll we have for example a class called DCStringArray, which looks like this (DCStringArray.h) :
***************************
#pragma once
#pragma message(" --> Including "__FILE__)
class CLASS_DUTILS DCStringArray : public CStringArray
{
public:
// construction / destruction ----------------------------------
DCStringArray();
DCStringArray(const DCStringArray& other);
virtual ~DCStringArray();
DCStringArray& operator =(const DCStringArray &other);
void BuildFrom(LPSTR lpBuffer,LPSTR seps) ;
void BuildFromCommaSeparated(CString str);
void BuildFromItemsSeparatedBy(CString sListItem, CString sSeps);
BOOL AddIfNotExists(const CString& s);
BOOL Contains(const CString& s) const;
int ContainsNoCase(const CString& s) const;
void FillWithSeparation(CString &s, const CString& strSeparator) const;
};
***************************
NB : We also have one called DCString derived from CString.
Now in DCData.dll, a DLL which uses DUtils.dll (#include "DUtils.h" in "stdafx.h"), we have for example a class called DCAcquisitionHolder (defined in DCAcquisitionHolder.h") which looks like this (DCStringArray is only used in this constructor) :
******************************
#pragma once
#include "DCStringArray.h" // for channel names
class CLASS_DCDATA DCAcquisitionHolder : public CObject
{
public:
// -----------------------------------------------------------------------
DCAcquisitionHolder();
DCAcquisitionHolder(const DCAcquisitionHolder& other);
DCAcquisitionHolder(const DCStringArray& channelNames);
virtual ~DCAcquisitionHolder();
(...some other functions ...)
};
******************************
And now "DCAcquisitionHolder.cpp" :
**********************************************
DCAcquisitionHolder::DCAcquisitionHolder(const DCStringArray& channelNames)
{
Init();
for (int i=0; i < channelNames.GetSize(); i++)
{
DCChannelHolder* pChannel = new DCChannelHolder(channelNames[i]);
m_channels.Add(pChannel);
}
}
**********************************************
And so when compiling, here is one of the 50 errors that we have :
************************************
************************************
------ Build started: Project: DCData, Configuration: Release Win32 ------
Linking...
DUtils.lib(DUtils.dll) : error LNK2005: "public: __thiscall ATL::CStringT<char,class strtraitmfc<char,class=""
atl::chtraitscrt<char=""> > >::CStringT<char,class strtraitmfc<char,class="" atl::chtraitscrt<char=""> > >(class
ATL::CStringT<char,class strtraitmfc<char,class="" atl::chtraitscrt<char=""> > > const &)"
(??0?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@QAE@ABV01@@Z) already defined in
DCAcquisitionHolder.obj
Can you see more what happens now ?
|
|
|
|