• 締切済み

Haru PDF Library

Haru PDF Libraryの使い方がいまいちわかりません。 1)公式HPで http://libharu.org/wiki/Downloads libHaru 2.1.0 (MSVC8, multithreaded) - libharu-2.1.0-vc8.zip を DL 2)ZIPを解凍 3)VS2008起動で、ZIPの中にあったヘッダファイルを すべてコピーしてプロジェクトに追加 4)build #include "stdafx.h" #include "hpdf.h" int _tmain(int argc, _TCHAR* argv[]) { HPDF_Doc pdf; pdf = HPDF_New (error_handler, NULL); if (!pdf) { printf ("ERROR: cannot create pdf object.\n"); return 1; } if (setjmp(env)) { HPDF_Free (pdf); return 1; } return 0; } 以下のエラーが生成されます。 error C2065: 'error_handler' : 定義されていない識別子です。 error C2065: 'env' : 定義されていない識別子です。 error C3861: 'setjmp': 識別子が見つかりませんでした どのようにしたらPDFが生成されますか?

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

まず公式HPのExamplesを見てください。 そのコードでは、必要なものが大分と記述されてませんよ。 http://libharu.org/wiki/Documentation/Examples#font_demo.c

ringist
質問者

お礼

サンプルの場所の提示ありがとうございました。 上記のURLにたくさんサンプルがあったので助かりました。 ありがとうございます。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

提示されたソースは、何を参考にして書かれたのですか?

ringist
質問者

お礼

http://libharu.org/wiki/Documentation/Usage を見て書きました。 もっと詳しいサンプルがあるのが分からなかったのです。 回答ありがとうございました

関連するQ&A

  • C++でismbblead()が使えない。

    http://www.orchid.co.jp/computer/cschool/kanji1.html 上記のサイトを参考にVS2013で以下のようなソースを書きました。 #include "stdafx.h" #include "stdio.h" int _tmain(int argc, _TCHAR* argv[]) { char *str = "123498765abcd漢字0000"; int i1; for (i1 = 0;;){ if (str[i1] == '\0')break; if (_ismbblead(str[i1])){ if (str[i1 + 1] == '\0'){ break; } putchar('['); putchar(str[i1++]); putchar(str[i1++]); putchar(']'); continue; } putchar(str[i1++]); } return 0; } 残念なことにコンパイルはとうらず、ismbbleadの部分が引っ掛かっているようでした。 C++だと使えないCのメソッドもあるのでしょうか? そういうわけでないのであればなぜ、コンパイルは通らないのでしょうか?C言語のコンパイラでは問題なく参考サイトのソースはコンパイルできました。 出ているエラーは IntelliSense: 識別子 "_ismbblead" が定義されていません error C3861: '_ismbblead': 識別子が見つかりませんでした というものでした。よろしくお願いします。

  • ShellExecuteをつかって・・・

    もしかしたら非常に簡単な問題かもしれないんですけど、 SDIベースでShellExecuteをつかって以下のような関数を作ってコンパイルすると、 ”error C2065: 'm_hWnd' : 定義されていない識別子です。” がでます。 前に別プロジェクトでやったときは特に定義せず使えたような気がするのですが、 何か使い方が間違っているのでしょうか? #include "stdafx.h" #include "FCwin.h" #include "MainFrm.h" #include "FCwinDoc.h" #include "FCwinView.h" ・・・中略・・・ int CFCwinApp::DosFcExe() { HINSTANCE ret = ShellExecute(m_hWnd,"open","command.com",NULL,"c:\\",SW_SHOW); if((int)ret <= 32 ){AfxMessageBox("DOS窓開けません",MB_OK);return 1;} return 0; }

  • VC++2010 EE で #ifdef _MSC_VER #endi

    VC++2010 EE で #ifdef _MSC_VER #endif でエラー ソース始まり // _msc_ver.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #ifdef _MSC_VER #include "stdafx.h" #endif int _tmain(int argc, _TCHAR* argv[]) { return 0; } ソース終わり > fatal error C1020: 予期しない #endif です。 と出ます。なぜでしょうか?

  • DXライブラリとC言語 fwrite関数について?

    C言語(C++含む)とDXライブラリを用いてゲームプログラミングを行っています。初心者です。 今回、3次元配列をファイルとして出力したい。と下のようなプログラムを組んでみました。 しかし、上手くいきません。具体的に言うなら、配列の中身が最初の4つは訳の分からないものになり、残りは0で埋め尽くされてしまいます。 私としては、0か2、で埋め尽くされて欲しいのですが上手くいきません。 バイナリエディタで中身を覗いてみると、#include "Dxlib.h"なんて書いてある行があります。 これはおそらく、fwriteの使い方を間違っているんじゃないだろうか。なんて思って色々やってみたのですが、上手くいかないようです。 ここが間違っているのかそうでないのか、が未だにはっきりと分からないため、行き詰ってしまった感じがあります。 下のプログラムで間違っている箇所がありましたら、どこがどう間違っているのかと指摘して貰えると助かります。よろしくお願いします。 #include "Dxlib.h" int save_map(){ int map_yama_1[50][50][10]={0}; int map_yama_f1[50][50][10]={0}; /***** ランダムマップ生成 *****/ static int map_sakusei = 0; //ランダムマップを生成し終えているか、否か if ( map_sakusei ==0 ){ for (int a=0;a<50;a++){ for (int b=0;b<50;b++){ for (int c=0;c<10;c++){ map_yama_1[a][b][c] = GetRand(2); if (map_yama_1[a][b][c] == 1) map_yama_1[a][b][c] = 2; } } } FILE *fp = fopen("map_01.dat","wb"); if( fp == NULL ){ // NULLが返ってきたらエラー発生 return 0; } fwrite( map_yama_1, sizeof(map_yama_1), 1, fp ); //fwrite( map_yama_1, sizeof(int), 50*50*10, fp ); fclose(fp); } /***** map_yama_1作成終了 *****/ return 0; }

  • 【C++】関数ポインタの使い方

    関数ポインタの使い方で悩んでいます。 下記の (1)のようにグローバルメソッドとして定義したメソッドを関数ポインタに代入することは出来るのですが、 (2)のようにクラスのメンバメソッドとして定義したメソッドは関数ポインタに代入することは出来ませんでした。 Error:バインドされた関数へのポインターは関数の呼び出しにのみ使用できます。 というエラーが発生します。 関数ポインタに外部参照でメソッドを代入することは出来ないのでしょうか? -----(1)------------------------------------------------------------------ #include "stdafx.h" #include <iostream> using namespace std; int f(int a, int b){ return a * b; } int _tmain(int argc, _TCHAR* argv[]) { typedef int (* FUNC_POINTER)(int, int); FUNC_POINTER fp; fp = f; cout << fp(1,2) <<endl; getchar(); return 0; } ------------------------------------------------------------------------- -----(2)------------------------------------------------------------------ #include "stdafx.h" #include <iostream> using namespace std; class MPointerList{ public: int f(int a, int b){ return a * b; } }; int _tmain(int argc, _TCHAR* argv[]) { typedef int (* FUNC_POINTER)(int, int); FUNC_POINTER fp; //fp = f; MPointerList mP; fp = mP.f; cout << fp(1,2) <<endl; getchar(); return 0; } -------------------------------------------------------------------------

  • コンパイルできません

    #include<iostream> using namespase std; int main(){ double feet; do{ cout<<"フィート数を入力する(0で終了):"; cin<<feet; cout<<feet*12<<"インチ\n"; }while(feet!=0.0); return 0; } をVisual Studio 2008 コマンドプロンプトでコンパイルしようとしたら、このようなメッセージが出てコンパイルできません。何故なのでしょうか?よろしくお願いします。 sample1-3-2.cpp C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 sample1-3-2.cpp(2) : error C2146: 構文エラー : ';' が、識別子 'std' の前に必要で す。 sample1-3-2.cpp(2) : error C2873: 'namespase' : シンボルを using 宣言の中で使用 することはできません。 sample1-3-2.cpp(2) : error C4430: 型指定子がありません - int と仮定しました。メ モ: C++ は int を既定値としてサポートしていません sample1-3-2.cpp(2) : error C2365: 'std' : 再定義; 以前の定義は '名前空間' でした 。 sample1-3-2.cpp(7) : error C2065: 'cout' : 定義されていない識別子です。 sample1-3-2.cpp(8) : error C2065: 'cin' : 定義されていない識別子です。 sample1-3-2.cpp(9) : error C2065: 'cout' : 定義されていない識別子です。

  • 標準のマクロのエラーについて

     今日は、下のような標準のマクロを書いたのですが、 「エラー 1 error C2065: '_DATE_' : 定義されていない識別子です。」という表示なります。 「_DATE_」の両端はアンダーバーではないのでしょうか、半角にしても全角にしても同じエラーになります。  どのような符号を使ってやればよいのでしょうか、それとも他の原因のエラーなのでしょうか、宜しくお願いします。 ============================================================= #include <stdio.h> int main() { printf("今日は%dです。\n" , _DATE_); return 0 ; }

  • 標準ライブラリ関数と標準入力を使ったプログラミング

    C言語で「入力された数字をASCIIコードとして文字で出力する」というプログラムを作っています。 isdigitを使って入力が数字だったら値を出力して、それ以外のときはエラーメッセージが出力されるようにしたいのですが上手く動作しません。 以下が作ったプログラムなのですが。 #include<stdio.h> #include<ctype.h> int main(void) { int=a; scanf("%d",&a); if(isdigit(a))printf("%c",a); else printf("エラーです"); return 0; } isdigitの使い方がいまいちよく分かってないのともしかしたら根本的に何か大きく違ってるのかもしれないのですが何か助言等あれば頂きたいので宜しくお願いいたします。

  • VC++ iostreamの不具合(?)

    手強いVC++のエラーです(対処が効かない #include <iostream> int main () {cout << "ggrks"; return 0;} C2065エラー 'cout' : 定義されていない識別子です。 #include <iostream.h> int main () {cout << "Hello C++!"; return 0;} C1083エラー include ファイルを開けません。'iostream.h': No such file or directory iostream(拡張子無)はCドライブのプログラムファイル、Microsoft Visual Studio 9.0\VC\includeに存在してます。 パスは許可してあります。 ツール→VC++ディレクトリ→インクルードファイルで C:\Program Files\Microsoft Visual Studio 9.0\VC\include と C:\Program Files\Microsoft Visual Studio 9.0\VC\include\iostream もついでに。 インストが完全でなかったのかと思い、「修復又は再インストール」で再インストしましたが変わりません。 気分転換(?)に一回アンインストールしてから再インストール(あまり意味ありませんけど)しても同様です。 どうすれば良いでしょうか。ご教授願います。

  • VisualC++ ビルド失敗

    #include<stdio.h> int main(){ printf("Hello World\n"); return 0; cin.ignore(); } >>cin.ignore(); これで画面がすぐに消えないようにしたいのですが、定義されてない識別子と出ます。 教えてください・・・よろしくお願いします。

専門家に質問してみよう