アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在 http://www.kumei.ne.jp/c_lang/sdk2/sdk_119.htm のサイトを参考に、
dllの作り方について勉強しています。

dll01.cpp, dll01.hまでを書いて、コンパイルしようとしたのですが、
c:\users\kei\documents\visual studio 2005\projects\dll01\dll01.h(5) : error C2059: 構文エラー : '文字列'
c:\users\kei\documents\visual studio 2005\projects\dll01\dll01.cpp(11) : error C2059: 構文エラー : '文字列'
とでてきてコンパイルできません。

解決方法が全く分からず困っています。
どなたかご教授願います。

<環境>
  Windows Vista Home Premium
Visual C++ 2005 Express Edition

A 回答 (2件)

★アドバイス


・すべての文字列にTEXT()マクロを使って記述してみて下さい。
 (例)
 編集前⇒『char szClassName[] = "test01";』
 編集後⇒『char szClassName[] = TEXT("test01");』
 多分このようなエラーでしょう。
 正確にはソースを見ないと分かりませんけどね。
 試してみて下さい。
 違っていたら補足をどうぞ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ソースコードを示しておきます。

// dll01.cpp

#include <windows.h>
#include "dll01.h"

int WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID pvReserved)
{
  return TRUE;
}

EXPORT BOOL CALLBACK MyDraw(HDC hdc,
   int x1, int y1, int x2, int y2, COLORREF crColor)
{
   HPEN hPen, hOldPen;
   hPen = CreatePen(PS_SOLID, 1, crColor);
   hOldPen = SelectObject(hdc, hPen);
   MoveToEx(hdc, x1, y1, NULL);
   LineTo(hdc, x2, y2);
   SelectObject(hdc, hOldPen);
   DeleteObject(hPen);
   return TRUE;
}

ヘッダファイルは以下です。
// dll01.h

#define EXPORT extern "C" __declspec(dllexport)

EXPORT BOOL CALLBACK MyDraw(HDC, int, int, int, int, COLORREF);

ソースファイルの11行目、ヘッダファイルの5行目にエラーが出ています。
見たところ文字列に関する記述はなく、なぜエラーが出るのかわかりません。

どうしたものでしょうか…??

お礼日時:2008/03/28 22:17

プロジェクト->プロパティ->構成プロパティの文字セット欄を設定なしにされていますでしょうか?


試しに作成したところ、エラーなしでできました。
参考までに、
dll01.cppとdll01.hのEXPORT BOOL CALLBACK MyDraw()関数を
CALLBACKはなしのEXPORT BOOL MyDraw()でも出来ました。
<環境>
Windows Vista Home Premium
Visual C++ 2008
    • good
    • 0
この回答へのお礼

ありがとうございます!
文字セットを変えてみたところ、正常に作動しました。

お礼日時:2008/03/29 10:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!