0

私はVisualStudio2008(32ビット)の初心者です。私が使用しているWinCEのバージョンは7.0Evaluationです。私は新しいプロジェクトを次のように作成しました。

New Project -> Platform Builder-> OS Design

BSPを次のように選択しました。

BSP: Generic CEPC:x86

デザインテンプレートが強調表示されたら、Consumer Media DeviceクリックしFinishました。

上記の選択は私にとって必須です。これらに加えて、サブプロジェクトを作成しa simple hello world application、行を追加しましたcout<<"Hello World";(デフォルトではcppファイルです)。私も含めiostreamました。

次のようなエラーが発生しました

fatal error C1083: Cannot open include file: 'iostream': No such file or directory

このリンクで述べられているように、私はチェックアウトしました、libcmtd.libそしてそれはにあり$(VCInstallDir)libます。にも含まれていTools | Options | Projects and Solutions | VC++ Directories | Show Directories For -> Library filesます。

このリンクに基づいて、プリコンパイル済みヘッダーの設定を確認しました。私はそこで次のものを見つけました:

Precompiled Files : Yes
Precompiled Header File Name : StdAfx.pch
Precompiled Header Object File Name : StdAfx.obj
Precompiled Header Options : (blank)
Precompiled Header Source File Name : StdAfx.h

これを無効にするにはどうすればよいですか?これを無効にした場合、プロジェクトの他の部分で他の問題が発生することはありませんか?

アップデート:

Cプログラムの場合、

#include<stdio.h>

int main()
{
    printf("\nHello World\n");
    return 0;
}

次のエラーが発生しました、

error LNK2019: unresolved external symbol _WinMain referenced in function _WinMainCRTStartupHelper 

fatal error LNK1120: 1 unresolved externals 

fatal error U1077: 'D:\WINCE700\sdk\bin\i386\x86\link.EXE' : return code '0x460' 

ここでもリンクの問題は何でしょうか?

4

3 に答える 3

1

作成したCコードは、WinCEアプリでは機能しません。WinCEアプリのエントリポイントは、通常のメインではなく、WinMainです。

そのiostreamのものはすべてSTLからのものです。私自身の経験から、STLが実際にWinCEとWindowsデスクトップで実装される方法にはいくつかの違いがあります。それが現在そして将来の問題の原因となるでしょう。これらの問題について説明しているSOの記事を次に示します。

WinCEでそれを行う方法は次のとおりです(コードは実際にはテストされていません)

#include "stdafx.h"

using namespace std;
#include <iostream>

int WINAPI WinMain (
      _In_  HINSTANCE hInstance,
      _In_  HINSTANCE hPrevInstance,
      _In_  LPSTR lpCmdLine,
      _In_  int nCmdShow)
{
    cout << "hello world" << endl;
    return 0;
}

WindowsアプリケーションとWinCEアプリケーションは異なるルールに従い、コンソール(CRT)アプリとは異なるライブラリを必要とします。Visual Studioで、既定のWin32プロジェクトを作成し、既定のコンソールアプリを作成します。次に、テキスト比較ツールで3つすべてのプロジェクトファイルを比較します。多くの違いがわかります。これらの違いには、少なくとも次のものが含まれます。

  • 別のエントリポイント-WinMain、_WinMain、_tWinMainなど
  • これらは、windows.hファイルおよび関連するすべての装置の使用を可能にします
  • リンクする必要のあるデフォルトの.libファイルの別のセット

これらすべてにもかかわらず、GUIに入ると、WinCEアプリは楽しくなります。もし私があなたなら、私はこのC ++のものから抜け出し、C#CompactFrameworkに入ります。

于 2013-03-07T06:46:45.527 に答える
0

前述のように、これらの種類のWinCEアプリケーションでcoutまたはステートメントを使用することはできません。printf010110110101

代わりに、テキストを表示するために、ビルドモードを使用DEBUGMSGまたはRETAILMSGベースにします。

DEBUGMSG(TRUE,(TEXT("Hello World")));

RETAILMSG(TRUE,(TEXT("Hello World")));

たとえば、DEBUGMSGはReleaseモードでは機能しません。これらのメッセージの構文は、このリンクにあります。

于 2013-03-08T06:32:05.373 に答える
0

スタイルプログラムを作成する場合は、プロジェクトウィザードでコンソールアプリケーションmain(argc, argv)を選択する必要があります。

于 2013-03-07T07:26:11.280 に答える