• 締切済み

ライブラリの使用について質問です。

はじめまして。ライブラリの使用について質問させて下さい。 PDFlib(ttp://pdflib.jp/)をフリー版で使用してみたいのですが、リンクが上手くいかず2028や2019のエラーが出てしまい、コンパイルが通りません。 環境は VS2008EE .NET C++ で、ウィンドウズフォームアプリケーションに組み込もうとしています。 ttp://pdflib.hykw.tv/ の入門ページは参照したのですが、よく判りません…。 現状で試した事は、プロジェクトのプロパティから、 追加のインクルードディレクトリの指定、 追加のライブラリディレクトリの指定、 追加の依存ファイルでpdflib.libを指定、 を行い、stdafx.hに #pragma comment (lib, "pdflib.lib") #include <pdflib.hpp> #include <math.h> を追加し、Form1.hで PDFlib p; だけを追加し、ビルド。までです。 未解決のトークンで、実体がないという意味だと思われるエラーが出てしまい、ビルドできません。 未解決のトークンのエラーの実際のエラーコードは以下です。長いです。 PDF_TEST.obj : error LNK2028: 未解決のトークン (0A00000F) "public: __clrcall PDFlib::~PDFlib(void)" (??1PDFlib@@$$FQAM@XZ) が関数 "private: void __clrcall PDF_TESY2::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@PDF_TEST@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) で参照されました。 以上です。宜しくお願い致します。

みんなの回答

  • wathavy
  • ベストアンサー率22% (505/2263)
回答No.1

こちらをお試しになられてはいかがでしょうか? http://www.accusoft.com/pdf.htm なんとなく、こっちのほうが確実に動作しそうな気がします。 なんとなくです。

kazz1125
質問者

お礼

ありがとうございます。 そうですね。フリーで利用できればPDFlibにこだわる必要はありませんので、一度試してみたいと思います。 動作確認できましたらご報告いたします。

kazz1125
質問者

補足

お世話になっております。報告が遅れてしまい申し訳ございません。 iTextですが、.NET C++でも使う事ができました。 簡単な文字のみのPDFを作成して出力する事ができました。 ありがとうございました!

関連するQ&A

  • 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が生成されますか?

  • 「Visual C++ 2008 Express」の「PlaySoun

    「Visual C++ 2008 Express」の「PlaySound」関数について。 サイコロゲームが完成したのでBGMを入れようと思い 「PlaySound」関数を使ったところエラーに沢山阻まれうまくいきません。 --作成した経路&環境&やりたいこと-- 「Windows フォームアプリケーション」→「ソリューションも作成」 DirectXなしで「wav」ファイルを読みこみたい。 動画を添付してますが一応コードを乗せときますね。 --------------------------------------------------------------- #pragma once //ここから追加 #pragma comment(lib,"winmm.lib") #include <stdio.h> #include <windows.h> #include <mmsystem.h> //ここまで追加 namespace WinFAPI_S {  ~~省略~~ (一番下の方まできて・・・) #pragma endregion //ここから追加 int main(){ PlaySound("霊夢テーマ2.wav",NULL, SND_FILENAME | SND_NOSTOP | SND_SYNC); } }; } ------------------------------------------------------------- これをビルドすると「\Form1.h(74) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [16]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)」 というエラーがでてしまう困っております。 このエラーを解決するにはどうしたらよいでしょうか? またソースの書き方などが間違っているとか、アドバイスなどがございましたら言ってください。 それではよろしくお願いいたします。

  • C言語について質問・・・

    柴田望洋氏の著書である明解C言語(入門編)をもとに visual C++を使ってC言語の勉強をしているのですが まず最初に15+37の計算をしようと書いてあり、とりあえず わからない文法だらけだと思うが、下の通りそのまま入力してみよう と書いてあるのですが、その文章をそのまま入力してみたところ いきなりビルドエラーがでてきました。 ↓が実際の文章です。 /* 整数値15と37の和を表示する */ #include <stdio.h> int main(void) { printf("%d",15+37); /*整数値15と37の和を10進数で表示*/ return(0); } ※本書そのままを入力しており、全角半角のミスはないと思います。 しかし、実際新しいプロジェクトを作り立ち上げた瞬間に意味の分からない 文字の羅列が出てきてそのあとに上の文章を書いてあります。 ↓がその文章 #pragma once namespace lesson01 { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Form1 の概要 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: ここにコンストラクター コードを追加します // } protected: /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> ~Form1() { if (components) { delete components; } } private: /// <summary> /// 必要なデザイナー変数です。 /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// デザイナー サポートに必要なメソッドです。このメソッドの内容を /// コード エディターで変更しないでください。 /// </summary> void InitializeComponent(void) { this->SuspendLayout(); // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 12); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(284, 262); this->Name = L"Form1"; this->Text = L"Form1"; this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load); this->ResumeLayout(false); } #pragma endregion private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { } }; } /* 整数値15と37の和を表示する */ #include <stdio.h> int main(void) { printf("%d",15+37); /*整数値15と37の和を10進数で表示*/ return(0); } となっております。 ※lesson01はプロジェクト名です。 ビルドエラーは 1>------ ビルド開始: プロジェクト: lesson01, 構成: Debug Win32 ------ 1> lesson01.cpp 1>lesson01.cpp(10): error C2731: 'main' : 関数はオーバーロードできません。 1> lesson01.cpp(9) : 'main' の宣言を確認してください。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== 保存先はwindows フォームアプリケーションを選び保存しています

  • PBC Library

    PBC LibraryのVC版を使用したいのですが、「PBCVC」フォルダ内のプロジェクトファイルを開き、ビルドすると "gmp.h"が開けませんというエラーが出ます。 よくみると、「PBCVC」フォルダ内の「self-compiled」フォルダ内にgmp.hがあります。 そこで、プロジェクトにgmp.hを追加したのですが、同じエラーが出ます。 どうすれば解決するでしょうか? 宜しくお願いいたします。 PBC Library http://crypto.stanford.edu/pbc/download.html

  •  OpenCV2.1.0でのコンパイルエラーについて、質問があります。

     OpenCV2.1.0でのコンパイルエラーについて、質問があります。  初心者で至らない点があるかと思いますが、ぜひ回答よろしくお願いします。  動画キャプチャを再生するプログラムを作ろうと、DirectXを利用しています。  (Visual C++ 2010 expressを使っています)  インクルードファイルでの<cv.h>や<dshow.h>は、Microsofot windows SDK 6.1  やOpenCv2.1.0をインストールして、VC++ディレクトリ中の   インクルードファイル(*.h)は    c:\OpenCV2.1\include\opencv   ラ イブラリファイル(*.lib)は    c:\OpenCV2.1\lib   ダイナミックリンクライブラリ ファイル(*.dll)は    c:\OpenCV2.1\bin  (これは、”実行可能なファイル"のところへ)  設定して、コンパイルエラーは出ないようになりました。  しかし、   「インクルードファイル(*.h)は  c:\OpenCV2.1\include\opencv」  の処置のおかげで、同一フォルダに入っている   「cxtypes.h」と「cxoperations.hpp」の二つで、下記のようなコンパイルエラーが出ます。   エラーメッセージ > error C3862: /clr:pure または /clr:safe を伴うアンマネージ関数を   コンパイルできません  インラインのネイティブ アセンブリはマネージ コードで   サポートされていません >error C3645: : __clrcall は、ネイティブ コードにコンパイルされた関数  では使用できません  上のエラーから、clrの問題と考えて、.NET .Freamework 4.0(x68)を  新しくインストールしましたが、上のエラーが解決せず、コンパイルできません。  VC++ディレクトリ中のリンカーは、     strmiids.lib     cv.lib     cxcore.lib     highgui.lib     dxerr.lib     dxguid.lib     d3dx9.lib     d3dx10.lib     d3d9.lib     winmm.lib     comctl32.lib     strmbase.lib  にしました。  コンパイルエラーを解決する方法をご教示くださると、大変幸いです。  よろしくお願いします。

  • 【C++/CLI】enumの値を使用するとデザイナが読み込めなくなる

    VC++2005の.NETにてアプリを作成しています。言語はC++/CLIです。 data.hに下記のような定義をしています。 【data.h】 namespace A { namespace B { enum class Hoge { aaa, bbb }; } } これを、Form1.hからヘッダファイルをインクルードして使用したいのですが、 下記のように記述すると、ビルド実行は可能なのですが、デザイナが読み込めなくなってしまいます。 【Form1.h】 #include "data.h" ・・・ using namespace A::B; ・・・ int hoi = (int)Hoge::aaa; //これを記述すると、デザイナが読み込めなくなる ・・・ この現象について、何か私の使用方法が間違っているのでしょうか? C++/CLI初心者のため、このようなことでつまづいてしまっています。 解決法をご存知の方おられましたら、ご教示お願い致します。 【デザイナのエラー内容】 デザイナの読み込み時に 1 つ以上のエラーが発生しました。エラーは以下に一覧表示されます。コードの変更が必要なエラーもありますが、プロジェクトを再度ビルドすると解決できるエラーもあります。 フィールド 'aaa' がターゲット オブジェクトで見つかりませんでした。フィールドがターゲット オブジェクトのインスタンス変数として定義され、また正しいスコープを含んでいることを確認してください。

  • Opencvで質問

     Opencv初心者です。  今日opencvとVC++2010を設定して今練習中なのですが   #include <stdexcept>   #include <opencv/cv.h>   #include <opencv/highgui.h>   int main (int argc, char* argv[]){   const char *fileName = "C:\\Program Files\\OpenCV2.3.1\\samples\\c\\lena.jpg";   const char *windowName = "lena";   ::IplImage* img = ::cvLoadImage(fileName);   ::cvNamedWindow(windowName);   ::cvShowImage(windowName,img);   ::cvWaitKey();   ::cvDestroyWindow(windowName);   ::cvReleaseImage(&img);   }  と言うサンプルをビルドしたら  1>------ ビルド開始: プロジェクト: 画像処理練習, 構成: Debug Win32 ------  1>LINK : fatal error LNK1104: ファイル 'opencv_core231.lib' を開くことができません。  ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========  エラーが出てしまい先に進めません。  もしかしたら他に設定が悪いのでしょうか?  インストールもC:\Program Files\OpenCV2.3.1に名前も変えインストールしました。  ttp://shiotani.cn/20110904vc2010opencv.html  ここを参考にさせていただきました。 よろしくお願いします。

  • 複数のライブラリをリンクするときに構造体が衝突する

    C++,開発環境はVisual Studio Professional 2013です, ライブラリ1にxy座標の構造体 struct point { int x; int y; }; を定義しています. ライブラリ2にも全く同じ構造体を定義しています. ここで,あるプロジェクトからこれら2つのライブラリをリンクしようとしたら, error C2011: 'point' : 'struct' 型の再定義 というコンパイルエラーが出ます. ライブラリ1とライブラリ2にpoint構造体が記述された共通用のヘッダを参照させるという方法をとれば解決できるのでしょうが,この方法以外でこのエラーをなんとか回避する方法はないでしょうか. 構造体宣言は只の宣言であって実体をもたないため,中身が同じであればいくら記述が重複しても問題はないと聞いたことがあったので大丈夫だと思っていました. また,ライブラリ1とライブラリ2のpoint構造体の名前それぞれpoint1,point2にするなど違うものにするという方法でも回避できるのでしょうが,下記のメインコード内でコメントアウトされている部分のように,構造体の中身が全く同じなので互換性を持たせられるようにしたいのです. ちなみに,ライブラリ1,2はコンソールアプリケーション・空のプロジェクトで作成したあと,ソリューションのプロパティで「構成の種類」を「スタティックライブラリ(.lib)」にするという手順で作成しています. 以下,簡略コード ====ライブラリ1==== ----lib1.h---- #ifndef _H1_ #define _H1_ struct point { int x; int y; }; void print_lib1(struct point p); #endif ----lib1.cpp---- #include "lib1.h" #include <iostream> void print_lib1(struct point p) { std::cout << "lib1 : " << p.x << ", " << p.y << std::endl; } =====ライブラリ2====== ----lib2.h---- #ifndef _H2_ #define _H2_ struct point { int x; int y; }; void print_lib2(struct point p); #endif ----lib2.cpp---- #include "lib2.h" #include <iostream> void print_lib2(struct point p) { std::cout << "lib2 : " << p.x << ", " << p.y << std::endl; } ===メインコード=== ----main.cpp---- #include "../../lib1/lib1/lib1.h" #include "../../lib2/lib2/lib2.h" int main(void) { struct point val; val.x = 2; val.y = 3; print_lib1(val); //print_lib2(val); }

  • [VC++]ヘッダファイルからの関数コール

    Formのボタンクリックイベント(Form.h)から 別ファイル(.cpp)の関数をコールしたいのですがうまくいきません、 どのようにすればよいでしょうか?ご教授お願いします。 1> : error C2144: 構文エラー : 'void' は ')' によって先行されなければなりません。 1> : error C2059: 構文エラー : ')' //----- main1.h #include <stdio.h> #include "Form1.h" namespace A { void main1(); } //----- main1.cpp #include <stdio.h> #include "main1.h" using namespace A; void main1() { //処理 } //----- Form1.h #include <stdio.h> #include "main1.h" void main1(void); namespace A { public ref class Form1 : public System::Windows::Forms::Form { public: private: System::Void btn_Click(System::Object^ sender, System::EventArgs^ e) { //★クリックイベントからmain1の関数コールしたい main1(void); } }; }

  • ソフト移植(ヘッダーファイルとライブラリの違い)

    hファイルとLibファイルの違いがよくわかりません libでリンクしてhファイルを指定してCで命令を与える そこで問題なんですが 1.libファイルは作成できるんですか? 2.それともhファイルを書き換えるのが主流ですか? 3.学校でWEBカメラ移植の実験をしています #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <sys/ioctl.h> #include <stdlib.h> #include <linux/videodev.h> そこで上のライブラリ(.h file)をそのまま使って別のマイコンに移植しようという実験をしているのですがgcc(video4Linux)のライブラリ(.h file)抽出の仕方がよくわかりません すでにカメラのプログラムはあり、後はそのマイコンにライブラリをリンクすれば完成できるという設計構造なのですが、ソフト開発移植にあたって、この開発構造の概念であっているでしょうか? ライブラリを抽出する上で何か適切なアドバイスとかないでしょうか? *ちなみにマイコンのコンパイラーは自作です お願いします

専門家に質問してみよう