Question : Windows CE 5.0 - ReadFile me donnant juste le premier caractère

Bonjour les experts, le
I ont un problème énorme au sujet de ReadFile - méthode (peut-être sa un problème de WriteFile ?). le
It juste me donne le premier caractère d'un dossier et se casse ensuite que - pari c'est une issue de codage, mais je suis hors d'ideas.

I AM écrivant un ActiveX qui fonctionne sur Windows CE 5.0 (! , pas PocketPC ou mobile). Il s'appelle par l'intermédiaire d'un site Web sur le dispositif mobile. Que travaux très bien jusqu'ici (IObjectSafety mis en application). Mon ActiveX a obtenu instanciated et les méthodes qu'il offre obtiennent appelées. le
The ActiveX devrait être employé pour stocker des données sur le dispositif mobile et lui être reçu encore si la méthode de needed.

1. (WriteData) prend car les paramètres un nom de fichier et lui est le contenu (les deux BSTR). le dossier du
The a obtenu créé et son contenu est méthode de written.

2. (ReadData) a le paramètre régulier - le nom de fichier - et un paramètre de la sortie BSTR qui devrait renvoyer le contenu du dossier donné par le paramètre 1.

Interaction entre ActiveX et site Web fonctionne très bien. Juste la substance lue à partir du dossier me conduit aliéné. Je googled pendant des jours de presque 1 1/2. Une fois que j'obtenais elle tout courante, mais l'a salie vers le haut.
I AM pas dans le besoin de coller à la manière montrée par les deux méthodes. Si quelqu'un a une meilleures manière/idée que je suis large d'esprit à celui :). faits du

Some sur l'arrangement : le mobile

Using .net du
- Windows CE 5.0
- Internet Explorer 6 de Visual C++ inclus par/>- 4.0
- ATL de

I a essayé d'employer le cpc (pour employer le fichier C et la substance), mais je ne pouvais pas mettre en application le *blushes* d'IObjectSafety. Si quelqu'un a un squelette fonctionnant que je peux me juger serait gratefull. Hpoe ceci vous ferait aux choses easier.

Thank à l'avance. le
RZA
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
mémoire fichier " de " codeSnippet826858 d'id= " de
STDMETHODIMP de class= : : WriteData (nom de fichier de BSTR, données de BSTR)
{
	filePath = store_path de CComBSTR ;
	filePath.Append (nom de fichier) ;
POIGNÉE hFile = : : CreateFile (filePath, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE, NULLE, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULLE) ;
	DWORD dwBytesWritten = 0 ;
	DWORD dwFileSize ;
	pszUnicodeBuff de TCHAR* ;
	dwFileSize = wcslen (des données) ;
	pszUnicodeBuff = (TCHAR*) LocalAlloc (LPTR, (dwFileSize +1) * le sizeof (TCHAR));	
	_tcsncpy (le pszUnicodeBuff, données, dwFileSize) ;

        : : WriteFile (hFile, pszUnicodeBuff (LPCVOID), (dwFileSize +1) * le sizeof (TCHAR), &dwBytesWritten, NULLE) ;
	: : CloseHandle (hFile) ;
	S_OK de retour ;
}


//-------------------------------------------------

Mémoire fichier de STDMETHODIMP : : ReadData (nom de fichier de BSTR, données de BSTR*)
{

	DWORD dwBytesWritten = 0 ;
	DWORD dwFileSize ;    
        pszFileBuff de CHAR* = 0 ;
	pszUnicodeBuff de TCHAR* ;
	
	filePath = store_path de CComBSTR ;
	filePath.Append (nom de fichier) ;

        POIGNÉE hFile = CreateFile (filePath, GENERIC_READ | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULLE, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULLE) ;

        dwFileSize = GetFileSize (hFile, NULLE) ;
	pszFileBuff = (char*) LocalAlloc (LPTR, dwFileSize) ;	

        ReadFile (hFile, le pszFileBuff (LPVOID), dwFileSize, &dwBytesWritten, NULLE) ;
        pszUnicodeBuff = (TCHAR*) LocalAlloc (LPTR, sizeof (TCHAR) * (dwFileSize + 1)) ;
        mbstowcs (le pszUnicodeBuff, (char de const *) pszFileBuff, (size_t) strlen (pszFileBuff)) ;
        CloseHandle (hFile) ;
        SysReAllocString de retour (données, pszUnicodeBuff) ;	
}
class= de

Réponse : Windows CE 5.0 - ReadFile me donnant juste le premier caractère

bien, ma conjecture sans visibilité est celle : pourquoi appelez-vous des mbstowcs () ? ? ? ? elle traite l'amortisseur d'UNICODE comme multibyte et essaye de le convertir en UNICODE, ainsi ce n'est aucune surprise que vous voyez 1 caractère simple
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us