|
I have encountered your
Cstring::/ Cstring str / str. problem with the autocomplete
as well. Sometimes I find it works for non-C++ native classes and sometimes it doesn't. I suspect that it is a bit flakey.
Unfortunately I cannot help you, but would appreciate anyone else's input who can shed some light on this...
|
|
|
|
|
An option to try is add the header file directly to the project. Don't count on the #include to parse the file for IntelliSense.
Phil Boyd
MCP
CPT, AR
You may be gone, but we will never forget your sacrifice.
"Proud to be an American..." Lee Greenwood
|
|
|
|
|
To force a file to be recognised as C++, use the /Tp option in your settings. Of course, you'll need to create a dummy project to have settings - put all your .cc files into it, and VC should be happy (it may even provide intellisense for you)
|
|
|
|
|
I have this in a static lib:
<br />
#ifdef _UNICODE<br />
typedef std::wstring _astr;<br />
#else<br />
typedef std::string _astr;<br />
#endif<br />
<br />
namespace SalieriFoundation<br />
{<br />
namespace Globals<br />
{<br />
void Func(const _astr &message)<br />
{<br />
...<br />
}<br />
}<br />
}<br />
Then I use it in a exe:
<br />
using namespace SalieriFoundation::Globals;<br />
<br />
Func(_T("the message"));<br />
So. I build ansi - fine. I build UNICODE and I get this:
<br />
<br />
Main.obj : error LNK2019: unresolved external symbol "void __cdecl SalieriFoundation::Globals::Func(class std::basic_string < unsigned short,struct std::char_traits < unsigned short > ,class std::allocator < unsigned short > > const &)" (?Func@Globals@SalieriFoundation@@YAXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z) referenced in function _main<br />
Edit: as asked by first reply changed the linker error message - added some spaces to avoid HTML-like text. Also I actualy have namespaces that you can see in the error message so I added in the above sample code - but I don't think it makes any diff.
What's wrong?
_UNICODE is defined in both projects.
I'm tying to find it for like 6 hours. Please help.
|
|
|
|
|
Can you please edit the linker error message to include the first template parameter for basic_string - code project has eaten it because it looks like an HTML tag.
Dave
|
|
|
|
|
Ok. I did. Check it out.
Thanks a lot.
|
|
|
|
|
Are you sure it is linking with the unicode version of the static library? If both the unicode and ansi versions have the same filename (which is never a good idea), then it is possible that it is finding the ansi version first, and so never finding your unicode version of the function.
Dave
|
|
|
|
|
Interesting, but I'm trying to rely on those "dependencies". Bad idea, huh?
OK. Let me try more explicit linkage...
|
|
|
|
|
|
You know what? No!
Wierd. I know now that the lib is correct. At least as unicode goes.
|
|
|
|
|
Anyone knows a reason why this would not paint my items/sub items ?
case WM_NOTIFY:
{
switch(LOWORD(wParam))
{
case IDC_LIST:
{
if(((LPNMHDR)lParam)->code == NM_CUSTOMDRAW)
{
NMLVCUSTOMDRAW *cdraw = (NMLVCUSTOMDRAW*)lParam;
if (cdraw->nmcd.dwDrawStage == CDDS_PREPAINT)
return CDRF_NOTIFYITEMDRAW;
if (cdraw->nmcd.dwDrawStage == CDDS_ITEMPREPAINT || cdraw->nmcd.dwDrawStage == CDDS_SUBITEM)
{
COLORREF crText;
if ( cdraw->iSubItem==2 )
crText = RGB(255,0,0);
else if ( cdraw->iSubItem==1 )
crText = RGB(0,255,0);
else
crText = RGB(128,128,255);
cdraw->clrText = crText;
return CDRF_DODEFAULT;
}
}
}
}
}
the message never arrives at if (cdraw->nmcd.dwDrawStage == CDDS_ITEMPREPAINT || cdraw->nmcd.dwDrawStage == CDDS_SUBITEM)
i have seen other src codes and it all works well there (MFC examples but not API)
any brief idea?
/- Bengi - \
|
|
|
|
|
any idea? i kinda need this one fixed badly!
/- Bengi - \
|
|
|
|
|
Have you seen Michael Dunn's article on Custom-Draw in List boxes? It's on this site (can't find link - it's entitled "Neat Things to do with CListCtrl using Custom Draw") - I have successfully followed that example to colour my List Box
-Alex
|
|
|
|
|
Hi!
I have a CDialogBar derived class, and I want to enable/disable some button in it.
Inside of my class, I catch the click button events for my buttons.
ON_BN_CLICKED(IDOKUNDCERVCREAT, OnBnClickedOk)
ON_BN_CLICKED(IDC_COMPUTEUNDCERVCREAT, OnBnClickedCompute)
ON_BN_CLICKED(IDC_DESTROYUNDCERVCREAT, OnBnClickedDestroy)
I have connected my buttons with my variables:
DDX_Control(pDX, IDOKUNDCERVCREAT, m_wndOk);
DDX_Control(pDX, IDC_COMPUTEUNDCERVCREAT, m_wndCompute);
DDX_Control(pDX, IDC_DESTROYUNDCERVCREAT, m_wndDestroy);
in my *.h I have:
CButton m_wndOk;
CButton m_wndCompute;
CButton m_wndDestroy;
So, in my OnButtonClickFunct.. I want to do things like:
m_wndOk.EnableWindow(false);
m_wndCompute.EnableWindow(false);
Right now, if I do that, my button dont enable/disable.
thanks for the help
Everything's beautiful if you look at it long enough...
|
|
|
|
|
Because, you haven't made the connection between the m_wndOk variable and the IDOKUNDCERVCREAT control, enabling m_wndOk won't do anything. The easiest way to achieve what you want is to lose the variables and just do:
GetDlgItem (IDOKUNDCERVCREAT)->EnableWindow (false); /ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
I tryed it, but It don't seems to work. Maybee the fact that it is a dialogBar unstead of a dialog prevent this from working.
any other ideas?
Everything's beautiful if you look at it long enough...
|
|
|
|
|
MemLeak wrote:
Maybee the fact that it is a dialogBar unstead of a dialog prevent this from working.
I don't think so. It's likely that there may be other problems in your code.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Hello,
I have an application which is using AviCap to occasionally grab a frame from a camera using a frame callback. I would like to convert this frame data into a bitmap or DIB (in memory). For testing purposes I have a static control (m_Pic) declared globally (for ease in testing) in which to display the bitmap to. I know the callback is working correctly because the static control turns black and resizes to the size of the captured imaged.
I've read through the samples here and at a few other places and I'm looking for a very simple method to get the image data without using any sort of custom class. Any help would be appreciated.
Thanks,
Aaron Stubbendieck
LRESULT FAR PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)<br />
{<br />
VOID* data=NULL;<br />
data=malloc(lpVHdr->dwBytesUsed);<br />
ZeroMemory(data,lpVHdr->dwBytesUsed);<br />
memcpy(data,lpVHdr->lpData,lpVHdr->dwBytesUsed);<br />
<br />
BITMAPINFO BitmapInfo;<br />
capGetVideoFormat(hWnd,&BitmapInfo,sizeof(BitmapInfo));<br />
<br />
HBITMAP hBitmap=::CreateDIBSection(0,&BitmapInfo,DIB_RGB_COLORS,&data,NULL,0); <br />
<br />
CBitmap bmp;<br />
bmp.Attach(hBitmap);<br />
m_Pic.SetBitmap(hBitmap);<br />
<br />
delete data;
<br />
return (LRESULT)TRUE;<br />
}
modified 12-Jul-20 21:01pm.
|
|
|
|
|
seems like I need some help trouble shooting again.
My app uses MS Speech API 5.1[^] and need to include the API for Win98 users. Problem is I am not sure which files to include? I have tried the Redistributable .msm[^]
Speech SDK merge modules (MSM)
The following merge modules can be redistributed:
sp5.msm
sp5intl.msm
sp5sr.msm
sp5ccint.msm
sp5itn.msm
sp5ttint.msm
spcommon.msm
sp5ttintxp.msm
The ones in bold are the ones I did not try installing.
Any ideas would be great thanks.
I think they installed properly but but app crashes when a speech function is called.
<edit added>
maybe I didn't create the installation correctly?
www.savemall.net/mshelp.htm[^]
</edit added>
Later, JoeSox www.joeswammi.com It's not easy facin' up when your whole world is black Rolling Stones
|
|
|
|
|
(rant, no help here...)
I have part of an application that is SAPI enabled. It worked ok. I really didn't like that the end user would still need to get a speech engine. I could have sworn the ones that came with SAPI were only part of the SDK and not intended for end-user distribution. (??)
We finally ended up not enabling this part of the software over concern about support issues. It really did seem like a huge support quagmire. I would love to hear from people who actually ship this stuff and the resulting support costs.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Tim Smith wrote:
We finally ended up not enabling this part of the software over concern about support issues.
Well I only am using it to speak generated text strings and display the Speech Control panel applet for the user to change voices and options. After that any problems, if any I will refer to MS or blame MS, in their documentation they suggest there are problems in some conditions.
Later, JoeSox www.joeswammi.com It's not easy facin' up when your whole world is black Rolling Stones
|
|
|
|
|
.... Well I though it was interesting. I'll start off with some background...
I am making this really cool app - it's really a super flexible imaging enviroment. One of its distinctive features is it's XML plugins. Each XML plugin contains a payload of C++ code plus a few other bits and pieces. So the app slots the pieces of C++ code from various XML plugins together and then runs them through a 3rd party compiler to make a "Processor" DLL, which the main app then loads and runs. This is useful because it allows the program to be fast and completly flexible even to the level of allowing users to edit the way image are created right down to the code!
Ok so really I have a couple of questions...
When you compile you get obj file which are subsequently passed through the linker. So what does the obj file contain? - I was under the impression that there was machine code in there. So if this is the case is it possible to load this machine code into memory manually, then use the beginning of the buffer as a function pointer, and then run the code that way?
This would be advantagous because I could cache machine code much more efficiently than keeeping loads of DLLs around. And instead of slotting together C++ I could cut and paste machine code together, so an XML plugin would only need recompiling every time the code was edited; and all the host would have to do is put the relevant machine code together then run it - all in memory - instead of clumsy compiling and temporaries and modules and stuff. Also cutting out the Linker would give obvious speed improvments, even I didn't do any machine code cut and pasting!!! On the other hand I was a bit worried because cutting out the linker might mess things up... Like the Implicit linking of the "Processor" DLL to the module... Can this worked around?
I realise this is a leviathon of topic, so I would be more than happy if somone could point me in the direction of a good source of information... Dynamic processing engines in general...
Anyway thanks for your time!!!
With time we live, with money we spend!
Joel Holdsworth.
|
|
|
|
|
Joel Holdsworth wrote:
So if this is the case is it possible to load this machine code into memory manually, then use the beginning of the buffer as a function pointer, and then run the code that way?
i don't think so, not easily, anyway. besides simply stitching the machine code in the .objs together, the linker also makes sure all the required functions are present, fixes up pointers from the .obj to external items (like external functions and variables) and a ton of other boring, but necessary things.
i'd go with an interpreted language with a nice C/C++ binding. write a bunch of primitive operations as built-ins, for speed, but do all the user's scripting in the interpreted language.
-c
Image tools: ThumbNailer, Bobber, TIFFAssembler
|
|
|
|
|
Yes I would tend to agree - the whole task is not easy. But there are a couple of good reasons why I'm not using an intirpreter - firstly is speed as you mentioned... I know that they do get faster than MsVB, but even so they are slow - I mean I'm talking about raytracing flyround movies of 3d fractals; I need power! Also writing an intirpreter sounds to me like a task as formitable as cut and pasting machine code.
Anyway thanks for the suggestions
With time we live, with money we spend!
Joel Holdsworth.
|
|
|
|
|
Hi Joel,
This sounds like an interesting project indeed. To use the .obj files directly you would need to perform all the processing steps that the linker does. This is stuff like address fix ups, checking referenced code exists etc.etc. I don't think you want to go there.
A better approach is to use a language which runs in a virtual machine. Our programmer's editor (see sig) uses this approach. It has a C extension language, with some C++ features. Code is compiled once into vm code and then executed in an interpreter. Some virtual machines compile on the fly, without producing intermediate code.
There are several C/C++ VM's around including CINT, CH and UnderC, but the one I suggest you look at us UnderC at http://home.mweb.co.za/sd/sdonovan/underc.html[^] This is reasonably young project and is developing fairly slowly, but Steve Donovan is doing a good job. I had a play with an early version last year and was quite impressed. It has come a ways since then.
I'd be interested to hear how your project evolves.
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|