Sign in to follow this  

convert wchar_t to WCHAR*

This topic is 2835 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi i'm new to all this stuff, i'm trying to write a dll and i need to convert a wchar_t to a WCHAR* , the text to go into WCHAR* must be like this L"text in hear" If anyone can help and/or show me whats wrong with my code thanyou #pragma once #include "Resource.h" #include < stdio.h > #include < stdlib.h > #include < cstdlib > #include < string.h > #include "stdafx.h" //using namespace std; extern "C" __declspec( dllexport ) wchar_t sayit1( wchar_t getit ); wchar_t sayit1( wchar_t getit ) { WCHAR *psay = getit; ISpVoice * pVoice; if (FAILED(::CoInitialize(NULL))) return FALSE; HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice); if( SUCCEEDED( hr ) ) { hr = pVoice->Speak(psay ,SPF_IS_XML, NULL); } ::CoUninitialize(); return NULL; } hope i put this post in the rite place =P [Edited by - Veeman on February 28, 2010 2:10:41 PM]

Share this post


Link to post
Share on other sites
I'd suggest reading up about how strings are stored. You seem to be trying to treat a single character as a string. If you wanted to get a pointer to a single char or wchar_t, well... Grab it's address!

wchar_t wc = L'P';
wchar_t* pWC = &wc;


If you are trying to pass a string, try the following for your function header.

wchar_t sayit1( const wchar_t * getit )
{
// You shouldn't need this
// WCHAR *psay = getit;

...

Share this post


Link to post
Share on other sites
thanx zyro for the help but i tryed and tryed and it would compile and run but no sound came out, i dunno how i'm going to get it working =(

mabe i'll have to learn pointers

well i'm going to read up and have ago with pointers tomorrow

if any one can help in the meantime please reply




#pragma once
#include "Resource.h"
#include < stdio.h >
#include < stdlib.h >
#include < cstdlib >
#include < string.h >
#include "stdafx.h"



extern "C" __declspec( dllexport ) wchar_t sayit1( const wchar_t * getit );



wchar_t sayit1( const wchar_t * getit )
{



ISpVoice * pVoice;

if (FAILED(::CoInitialize(NULL)))
return FALSE;

HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->Speak(getit ,SPF_IS_XML, NULL );

}
::CoUninitialize();
return NULL;

}



Share this post


Link to post
Share on other sites
Quote:
Original post by Veeman
mabe i'll have to learn pointers

well i'm going to read up and have ago with pointers tomorrow
A very good idea. It is perhaps almost as important as knowing how to add, when it comes to C & C++ programming.
Feel free to ask questions about them here if you need to.

Share this post


Link to post
Share on other sites
sorry i havent been back here for a while got people in rewiring the house and a new bath room and kitchen being put in =S

anyhow i call the function in dark basic at the moment it just says 'E' but heres the code anyway

edit:-
just bin trying it out and it only says the last letter in the string (a$)


`arrays & vars
a$="hello there"
dim organizer(365,1000,15)

`load DLL's
load dll "sayit.dll",1


`main
do

print CALL DLL (1, "sayit1",a$)


suspend for key

loop

[Edited by - Veeman on March 8, 2010 8:44:07 AM]

Share this post


Link to post
Share on other sites

This topic is 2835 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this