|
There have been plenty of posts on this matter but I can't get it to work under C++. Here is my very simple code:
main.cpp
<br />
#include "CSingleton.h"<br />
#include <windows.h> <br />
<br />
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)<br />
{<br />
CSingleton *singleton;<br />
<br />
CSingleton::NullMe();<br />
singleton = CSingleton::Instance();<br />
return 0;<br />
}
CSingleton.h
<br />
#ifndef _CSingleton_H<br />
#define _CSingleton_H<br />
<br />
class CSingleton<br />
{<br />
public:<br />
static CSingleton* Instance();<br />
static void NullMe(void);<br />
<br />
private:<br />
static CSingleton *me;<br />
CSingleton(void);<br />
~CSingleton(void);<br />
};<br />
<br />
#endif //_CSingleton_H
CSingleton.cpp
<br />
#include "CSingleton.h"<br />
<br />
void CSingleton::NullMe(void){me = 0;}<br />
CSingleton::CSingleton(void){}<br />
CSingleton::~CSingleton(void){}<br />
CSingleton* CSingleton::Instance()<br />
{<br />
if(me != 0)<br />
me = new CSingleton();<br />
<br />
return me;<br />
}
Compiles ok but come link time I get this message:
DELETE ME error LNK2001: unresolved external symbol "private: static class CSingleton * CSingleton::me" (?me@CSingleton@@0PAV1@A)
I am using VS .Net but I doubt it is a environment prob, more likely I suck.
I would appreciate any advice
Cheers -A-
-----------------------------------------------------------------------------
....now where does this plug in....
|
|
|
|
|
add CSingleton.cpp to your Projekt
|
|
|
|
|
You need to put the static variable in the CPP file as well, to allocate storage for it:
CSingleton* CSingleton::me = NULL; You should also fix the bug in Instance() , the test should be if (me == NULL)
--Mike--
Ericahist | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Latest art~!@#2rDFA#@(#*%$Rfa39f3fqwf--=
NO CARRIER
|
|
|
|
|
In CSingleton.cpp, add the following line:
CSingleton *CSingleton::me = NULL; after the #include .
Software Zen: delete this;
|
|
|
|
|
Can anyone point me at some code that does full text searching on strings. I'm not talking about regular expressions (got that), but something like your typical search engine with "this and that", "this or that" etc. The query language can be fairly simply. I've done the usual Google searching without finding much of interest. Preference is a C++ class.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Neville Franks wrote:
regular expressions
"this or that": this|that
isn't that sufficient ?
Jonathan de Halleux.
|
|
|
|
|
Regular expressions don't do "and". eg. You can't say "does this text contain both x and y". I want something along the lines of a typical Google search.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Google does not rely and "typical" word search as could expect. It involves a lot of linear matrix computation, model reduction and eigen value computation.
Jonathan de Halleux.
|
|
|
|
|
By string, I assume you mean a chunk pointed to by char* ?
--
Berlin rules.
|
|
|
|
|
Jörgen Sigvardsson wrote:
By string, I assume you mean a chunk pointed to by char*?
Yes. Or an stl string.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Argh. I was looking for the same functionaly a couple of years ago. I found a grep-function written in C which handled simple grep expressions. But it seems I cannot find it again.
--
Berlin rules.
|
|
|
|
|
I've got a full reg exp engine which I use in ED (see sig) but re's don't do things like "and" or "near". I can write code to build a "search engine" using my RE code, but if there is something already around then that may save me some time and provide a better solution. Also RE's are overkill for this.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
The favorite algorithm for multi-string searches is Aho-Corasick. You can find it here and here.
Books that discuss AC (with source) are:
Practical Algorithms in C++
Bryan Flamig
0471009555
and
Practical Algorithms for Programmers
$35.99
Andrew Binstock, John Rex
020163208X
code download: http://www.pacificdataworks.com/pub/code.zip (msrch.c)
Best wishes,
Hans
|
|
|
|
|
Hi Hans,
Thanks, looks like some interesting reading to do. Can't recall hearing about Aho-Corasick before.
Are you using ac.c, kwset.c or msrch.c and if so have you found any one better than the others for some specific use?
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Hi Neville,
I am looking at using something like kwset.c or msrch.c for a commercial search product I am working on. I am still trying (and looking for) different implementations, so I haven't decided yet.
One thing that has to be decided up front is whether to do full boolean search, or just allow simple "or" search of multiple strings. Right now I am leaning toward simple "or" search, because it is easily understood by user. I have visited some web sites where they offer a boolean search, but most of them do not perform correctly, and there is little consistency.
You also have to think about how often the more obscure boolean features will be used - and, not, near, etc. (I have given up trying these, even when they are available, because of incorrect results from poor implementations.) Also, what does it mean to ask for "code and not review" in the context of a whole file? On the other hand, I admit that "code near review" would be useful, if implemented correctly. One of the things I intend to do is look at various implementations, and see if it is possible to retrieve some kind of "word distance".
Bibliographic searches are usually not offered in text editors. In very large files, it would be quite useful to search for "code", save the search results (the line hits), and then do a subsearch for "review" on those lines.
And then be able to go back to a previous subsearch, and start again from there. This would give the equivalent of "and" search.
Please let me know of anything interesting you find.
Best wishes,
Hans
|
|
|
|
|
Hi Hans,
Hans Dietrich wrote:
Also, what does it mean to ask for "code and not review" in the context of a whole file?
I don't have any problem with "and not" and would find it very usefull on occasion. eg. "compiler and not free" would exclude all free compilers.
Hans Dietrich wrote:
In very large files, it would be quite useful to search for "code", save the search results (the line hits), and then do a subsearch for "review" on those lines.
And then be able to go back to a previous subsearch, and start again from there. This would give the equivalent of "and" search.
The todo list for ED (see sig) includes a request to search within the Find in Files results.
Hans Dietrich wrote:
Please let me know of anything interesting you find.
Here are some links I found yesterday.
http://www.dtsearch.com/PLF_engine.html[^]
http://www.gnu.org/software/mifluz/description.en.html[^]
http://www.cis.ru/~ata/search1.HTM[^]
Download is missing and I've emailed the author.
http://www.lextek.com/onix/[^]
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Hi There!
How to read office file (word, excel) without giving password ?
Thanks
Jason Chang
tmsnhien@yahoo.com
|
|
|
|
|
I want to use SetupDiGetDeviceInterfaceDetail() API. This function retrieves detailed information about a specified device interface. The definition of function is:
BOOL SetupDiGetDeviceInterfaceDetail(
HDEVINFO DeviceInfoSet,
PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData,
DWORD DeviceInterfaceDetailDataSize,
PDWORD RequiredSize,
PSP_DEVINFO_DATA DeviceInfoData);
As you see, one of arguments is DeviceInterfaceDetailData. the definition of structure is as below:
typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA
{
DWORD cbSize;
TCHAR DevicePath[ANYSIZE_ARRAY];
} SP_DEVICE_INTERFACE_DETAIL_DATA, *PSP_DEVICE_INTERFACE_DETAIL_DATA;
DevicePath is member variable of this structure (An array of TCHAR ). ANYSIZE_ARRAY defined as 1. in other hand:
#define ANYSIZE_ARRAY 1 //winnt.h
According to MSDN:
Using the SetupDiGetDeviceInterfaceDetail() function to get details about an interface is typically a two-step process:
1- Get the required buffer size. Call SetupDiGetDeviceInterfaceDetail() with a NULL DeviceInterfaceDetailData pointer, a DeviceInterfaceDetailDataSize of zero, and a valid RequiredSize variable. In response to such a call, this function fails, GetLastError() returns ERROR_INSUFFICIENT_BUFFER , and the RequiredSize parameter receives the required buffer size.
2- Allocate an appropriately sized buffer and call the function again to get the interface details.
Now, my question is, how can I allocate memory for DevicePath member variable of that structure? You know that DevicePath defined as an array not a pointer.
Thanks,
A. Riazi
|
|
|
|
|
I want to automate to solve this problem.
Read all of texts in MSO file (word, excel), change them to unicode and replace them.
But after change, I dont know how to replace. Because I use SetText(LPCTSTR text). But I want to put BYTE array (unicode code).
Thanks
Thanks
Jason Chang
tmsnhien@yahoo.com
|
|
|
|
|
Hi
1. How to retrieve shape object in excel, get text in them and their own font.
2. How to get chart object. Their text and font
Thanks
Thanks
Jason Chang
tmsnhien@yahoo.com
|
|
|
|
|
Hallo!
I intend to develop a learning software, in which I want to play some Videos. I want to compress the videos, and my question is, where can I get a free codec, which I can distribute with the software to guarantee the playbach of the video?
Or is it allowed to deliver the installation-pack of a new Version of Windows Media Player with my software, so the user can install this, he have automatically the mpeg4 codec, so I use this.
Has anyone an Idea? Thanks for help, and sorry for my lousy english.
Regards, Friedemann
|
|
|
|
|
STOP. Use the WMA 9.0 codec. It is the best video compressor on the market. You are allowed to redistribute Media Player 9--see the microsoft web site.
|
|
|
|
|
Scenario: Interrop:
(a).NET C# library packaged into a COM server
(b) COM server used in a C++ WIN32 console app that supports ATL.
Hi, I have wrapped up a simple C# managed class library with:
1. RegAsm.exe
2. gacutil - to install the signed assembly into GAC.
I successfully installed the assembly into GAC and created the tlb file with RegAsm. But I'm having trouble using it from my WIN32 console app.
The C# class is like this:
namespace ManagedCLib
{
public __gc class CSomeObj
{
public:
int MultiplyThis(int num1, int num2) { return num1*num2; }
public:
CSomeObj() { m_nID=0; }
__property int get_nID()
{
return m_nID;
}
__property void set_nID(int value)
{
m_nID=value;
}
protected:
int m_nID;
};
}
Very simple right? After the C# class lib is compiled/installed into GAC/tlb created, I copied the tlb file to the client WIN32 app's directory. My simple client code looks like this:
#include "stdafx.h"
#import "managedclib.tlb" //Type library referenced (It's now in client's directory)
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL); //Initialize COM library.
USES_CONVERSION;
ManagedCLib::_CSomeObjPtr obj( __uuidof(ManagedCLib::_CSomeObjPtr)); //CRASH HERE! Before invoking any method??
return 0;
}
The application code crashed - just a. I presume a .NET class lib packaged into a COM server with RegAsm.exe is a "in-process server". But I have no idea how to debug this, any direction? Thanks.
norm
|
|
|
|
|
Try CoCreateIntance, check HRESULT...
Shouldn't you use?:
ManagedCLib::_CSomeObjPtr obj;
obj = obj.CreateInstance(__uuidof(ManagedCLib::_CSomeObjPtr));
...
Regards
"...Ability to type is not enough to become a Programmer. Unless you type in VB. But then again you have to type really fast..."
Me
|
|
|
|
|
if(!::CreateProcess(NULL, "F:\\software\\develop\\sometool.exe",NULL, NULL, false, 0, NULL, NULL, &si, &pi)){
AfxMessageBox(ShowError("CreateProcess"));
}
if(::WaitForInputIdle(pi.hProcess, INFINITE) == 0){
::GetGUIThreadInfo(pi.dwThreadId, &gui);
}
but it doesn't work, the parameter gui's content is 0 except the cbSize member
why?
|
|
|
|