http://kanpoo.jp/
のサイトで、検索すると、PDFの内容が検索できます。
検索できるということは、PDFの文字を取得できるからだと思うのです。

PDFの文字をデータベースに読み込みプログラムを作りたいです。

とりあえず、PDFの文字を取得するプログラムを作りたいのですが、
作り方が全くわかりません。
どの言語をつかえばいいのか?
どの関数、ライブラリ?をつかえばいいのか?

何度ググっても、PDFの文字を取得するサイトがみつけられないので、
偉い人教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

標準でそういう機能を持っている言語はあまりないと思います。

そのためのライブラリなどを追加して処理することになるでしょう。例えば、Javaの場合、Apache Software Foundationから「PDFBox」というライブラリが出ています。これを利用することで、PDFからテキストを取得できます。

http://pdfbox.apache.org/
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
自分には敷居が高すぎたようです。

お礼日時:2011/05/24 22:20

わざわざ作らなくたって


テキストを引っ張り出すツールを呼び出せばいい

xpdfのpdftotextとかが使えるし,
namazuのようにpdfも全文検索できるものが
どうやってるのかをみればいい
(namazuのインデクサはxpdfを使ってたような).
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
pdftotextを使用してみましたが、日本語がうまく変換できませんでした。

お礼日時:2011/05/24 22:19

開発やったことない方なら、たしかにたどれないかもしれませんね。



通常、

SDK
OpenSouce
オープンソース
API

のキーワードを、アプリ名とか、ファイル形式について検索します。有償であったり、無償であったりします。

オープンソースと言うのは無償で、プログラムの内容を公開し、使ってもらうプログラムの事をさします。

http://www.google.co.jp/search?hl=ja&q=Acrobat+S …

http://www.google.co.jp/search?hl=ja&q=PDF+%E3%8 …

とかですね。その中から、

http://www.infoq.com/jp/news/2007/12/sun-release …

http://journal.mycom.co.jp/articles/2009/02/20/p …
http://kengo.preston-net.com/archives/002506.shtml

http://kb2.adobe.com/jp/cps/255/2558.html

これらとは別に、企業同士で提携すると、デベロッパー版が渡されます。それがSDKとか、フレームワークとか、API、SPIとかよばれるものです。

開発環境は、当然それらの物に依存するので、何かとは特定できませんが、昔からあるものなら、CがVBが多いです。

最近のものなら、C++、C#、Javaが多いです。

やる気があるひとなら、また許可されている場合は、別言語に書き換える方もいますが、Javaだと以外にそんあことしなくても、C++から使えます。

なお、COM(DCOM)として提供されていれば、VBS、VBA(つまりエクセルから使える)、JScriptなどのオブジェクト指向スクリプト言語が使えます。また、そのように開発している方もおおいです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
自分には敷居が高すぎました。

お礼日時:2011/05/24 22:18

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBからPDFファイルの埋め込みテキストを検索する方法

VBで文書を検索できるシステムを作っています。
通常検索では、テキストボックスに入力した文字列と一致するものをデータベースに登録した文書名から探してきてMSHFlexGridコントロール上に表示するようにしています。
今回は、追加検索として、指定したフォルダの中にあるPDFファイルやワードファイルなどの文書中の文字から一致するものを探して表示する機能を作りたいと考えています。
この様な機能はどの様に作れば良いのでしょうか?
色々とサイトを探してみたのですが、該当するものを見つけることが出来ませんでした。
よろしくお願いします。

Aベストアンサー

こんにちは。

[xdoc2txt]
PDF,WORD,EXCEL,一太郎などの各種バイナリ文書からテキストを抽出
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html

VB から xdoc2txt.exe を起動して抽出テキストをリダイレクトする。
または、ActiveX 版 xdoc2txt.ocx を使うとか。

一から VB でとなると恐ろしく面倒で、難しいですよ。

まず速度面の問題があるでしょうし、ファイルフォーマットの解析が
必要になったり。。

QVB.NET xdoc2txtをつかってPDFからテキストを取り出すコーディングがわかりません

[xdoc2txt]
PDF,WORD,EXCEL,一太郎などの各種バイナリ文書からテキストを抽出

を利用して、c:\tempにあるpdfファイルからテキスト情報を取り込みたいです。
xdoc2txt.exeやxdoc2txt.dllなどはどこに配置したら良いのかも教えてください。
お願いします。

Aベストアンサー

こんにちは。

>すみませんVB初心者のため、全体的なコーディングの流れを教えて頂けると助かります。

コーディングといっても、VB.Net では、TextBox に出てきたものを流し込むだけですよね。今、VB.Net と言われても、感覚を取り戻すまでには時間も掛かります。ですから、VBSで間に合わせさせていただきます。

》xd2tx216.zip に入っている
》xd2txcom.dll (xdoc2txt com dll版)サンプル VBScipt は参考にはなりませんか?

》 (1)xd2txcom.dllをregsvr32で登録してから実行してください。
》 regsvr32 xd2txcom.dll
》 (2)64bit OSで実行するときは、%WINDIR%SysWOW64\CScript.exe で実行してください。

細かい所は、「誰でも使えるxdoc2txt」を参考にしてください。
http://talk-pc.sakura.ne.jp/anybody_setup_xdoc2txt.html#versionup

ありきたりですが、簡単なコードを、VBSで作ってみました。
要するに、regsvr32 で登録した後は、
Set objXDOC = CreateObject("xd2txcom.Xdoc2txt.1")
とか、com オブジェクトで設定すれば済むわけです。

objXDOC.ExtractText(strArg, False)
実行コマンドはこれです。

後は、通常通りだと思います。

以下は、ドラッグ&ドロップ でアーギュメントを与える方法ですが、必要な部分だけを取り出してまってください。

主要なものはほとんど読めるようになっています。
As/R というファイラーに組み込んでしまいましたが、
http://www.all.undo.jp/asr/1st/
こんな簡単なものでも、思った以上に便利です。

Editorでみますから、textファイルは読みません。
また、画像が入っているものは、しばらく止まっていることがあります。
バグっぽいところは、気がついているのですが、それは、ご容赦のほどを。

'----Xdoc2Txt_Viewer.vbs----

Dim ext
Dim objFs
Dim txtOut
Dim strArg
Dim strExt
Dim exts
Dim ret
Dim buf
strExt = "rtf,docx,xlsx,xlsm,pptx,doc,xls,ppt," & _
"sxw,sxc,sxi,sxd,odt,ods,odp,odg,jaw,jtw,jbw," & _
"juw,jfw,jvw,jtd,jtt,oas,oa2,oa3,bun,wj2" & _
"wj3,wk3,wk4,123,wri,pdf,mht,html,eml"
exts =Split(strExt,",")
Set Args =Wscript.Arguments
txtOut =""
Set objXDOC = CreateObject("xd2txcom.Xdoc2txt.1")
Set objFs= CreateObject("Scripting.FileSystemObject")
For Each strArg in Args
ext= objfs.GetExtensionName(strArg)
ret =Filter(exts,ext,True,1)
If UBound(ret)>-1 And Ubound(ret)< 2 Then
buf =objXDOC.ExtractText(strArg, False)
txtOut = txtOut & buf & vbCrLf
Else
txtOut =txtOut & vbCrLf & strArg
End If
Next
If txtOut <>"" Then
MsgBox txtOut
End If
'----------------

こんにちは。

>すみませんVB初心者のため、全体的なコーディングの流れを教えて頂けると助かります。

コーディングといっても、VB.Net では、TextBox に出てきたものを流し込むだけですよね。今、VB.Net と言われても、感覚を取り戻すまでには時間も掛かります。ですから、VBSで間に合わせさせていただきます。

》xd2tx216.zip に入っている
》xd2txcom.dll (xdoc2txt com dll版)サンプル VBScipt は参考にはなりませんか?

》 (1)xd2txcom.dllをregsvr32で登録してから実行してください。
》 regsvr32 xd2tx...続きを読む

Qc#でコマンドプロンプトを実行する方法

コマンドプロンプト上から音楽ファイルの変換が出来るffmpegを利用して
C#プログラムを作ろうと思い、下記のサイトを参考にしてc#プログラムを作りコマンドを入力してみたのですがうまくいきません。
しかし、同じコマンドをコマンドプロンプトを手動で開いて打ち込むと成功します。

参考にしたサイト:http://dobon.net/vb/dotnet/process/standardoutput.html
入力したコマンド:"E:/ffmpeg.exe" -i "E:/a.m4a" -b:a 320k "E:/a.mp3"
 ※コマンドの-b:a 320kの表記は320kbpsのビットレートで変換するコードです。
 ※a.m4aをa.mp3に320kbpsのビットレートで変換するコマンドになります。

現状をまとめると以下のようになります。
(1)コマンドプロンプトを手動で起動して、以下のコマンドを打ち込むとうまく変換してくれる。
"E:/ffmpeg.exe" -i "E:/a.m4a" -b:a 320k "E:/a.mp3"
(2)しかしこのコマンドを下記のコードで実行すると処理が行われない。
(3)そうなると下記のコード自体に問題があるように思われるが、
下記のコードで"dir c:\"など簡単なコマンドを実行すると成功する。

ダブルクオテーション(")やスペースなどに問題があるのかと思いいろいろと試してみましたがダメでした。
どうすれば下記のコードで"E:/ffmpeg.exe" -i "E:/a.m4a" -b:a 320k "E:/a.mp3"のようなコマンドを実行出来るのでしょうか?
実行する方法、もしくは違うコードで実行する方法などを知っておられる方、ぜひご教授ください!非常に困っております。


---------------------------------------------------------------------------------------------------
■コマンドプロンプトをC#上から実行するコード
http://dobon.net/vb/dotnet/process/standardoutput.htmlのコードの丸写し
---------------------------------------------------------------------------------------------------
//Processオブジェクトを作成
System.Diagnostics.Process p = new System.Diagnostics.Process();

//ComSpec(cmd.exe)のパスを取得して、FileNameプロパティに指定
p.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
//出力を読み取れるようにする
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = false;
//ウィンドウを表示しないようにする
p.StartInfo.CreateNoWindow = true;
//コマンドラインを指定("/c"は実行後閉じるために必要)


//○成功する
p.StartInfo.Arguments = "dir c:\";
//×失敗する
p.StartInfo.Arguments = "\"E:/ffmpeg.exe\" -i \"E:/a.m4a\" -b:a 320k \"E:/a.mp3\";


//起動
p.Start();
//出力を読み取る
string results = p.StandardOutput.ReadToEnd();
//プロセス終了まで待機する
//WaitForExitはReadToEndの後である必要がある
//(親プロセス、子プロセスでブロック防止のため)
p.WaitForExit();
p.Close();

//出力された結果を表示
Console.WriteLine(results);
---------------------------------------------------------------------------------------------------

コマンドプロンプト上から音楽ファイルの変換が出来るffmpegを利用して
C#プログラムを作ろうと思い、下記のサイトを参考にしてc#プログラムを作りコマンドを入力してみたのですがうまくいきません。
しかし、同じコマンドをコマンドプロンプトを手動で開いて打ち込むと成功します。

参考にしたサイト:http://dobon.net/vb/dotnet/process/standardoutput.html
入力したコマンド:"E:/ffmpeg.exe" -i "E:/a.m4a" -b:a 320k "E:/a.mp3"
 ※コマンドの-b:a 320kの表記は320kbpsのビットレートで変換するコー...続きを読む

Aベストアンサー

>うまくいきません。

「なにが」「どう」「いまくいかない」んでしょうか?

プロセス起動した後に無反応になる?
プロセス終了した後に表示されるべきメッセージが表示されない?
プロセス起動できない?
起動したffmpeg.exeが終了しても戻ってこない?

参考ページではcmd.exeに/cオプションを指定しているようですが、
変更されたソースでは指定していないようで…。
その場合、
p.WaitForExit();
でちゃんと戻ってこれるんですかね?
# 起動したcmd.exe自体は終了していないはずですが…
# /Cも/Kも無かった場合ってどういう動作するんですかね?(Windows7 Pro 64Bitでcmd dirとしたら無視されてしまいましたが)

cmd.exe経由でなくても、必要条件満たせばffmpeg.exeの起動は可能と思いますよ。
ffmpeg.exeを利用するフロントエンドアプリなんかもそうしているでしょうし。
「ffmpeg.exe フロントエンド」で検索してみるとアプリは見つかるかと。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Qテーブルからのselectにおいてデータの有無により結果をわけたい

id | point
----+-------
1 | 10
2 | 9
3 | 5
....
というテーブルがあるとします.
idを指定してpointを得たいのですが、そのidがこのテーブルに存在しない場合は空の結果ではなく0を返したいのです.
plpgsqlなどを使いif文で場合分けすればできることはわかっているのですがSQL文だけで(それもできれば1文で)これを実現する方法はあるでしょうか?
よろしくお願い致します。

Aベストアンサー

変則的ですが、これでよければidがユニークでなくても大丈夫ですし、集合関数を使わなくてもOKです。

select dm.id,case when ex1.point is null then 0 else ex1.point end from
(select ? as id) as dm left join ex1 on dm.id = ex1.id;

?を適当に変えてください。
chukenkenkouさんの発想はこれですよね。

QVB上で実行中の無限ループの止め方

今まで、CUIベースのBASICでのプログラムの経験はあるのですが
Visual系のBASICは初心者です。
原因はわかっているのでプログラムの修正はできるのですが
VB上でコンパイルして実行したときに無限ループに陥ってしまって
どうにもプログラムをとめられなくなります。
そんなことがないように、実行前に全てのプロジェクトを保存して
いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・
今現在は、タスクマネージャーから強制終了させています。

Aベストアンサー

無限ループの一番内側に
DoEvents
を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ

危なそうなとこにも入れておくと、何かと安心です。

QPDFを全文検索するプログラム

Acrobatの提供するJavascriptオブジェクトやAPIを使用して、PDFを対象とした
全文検索ツールを作りたいのですが、書籍等も少なく、なかなか有効な情報に
出会えません。どなたか実際にそのような開発に携わったことがあれば、
その手法に関する情報をご提供頂けないでしょうか?
なお、市販のPDF全文検索ソフトもいろいろあるのですが、ライセンス
フリーなものが今回必要となり、自作を検討しております。
用途はPDFをCD-Rに焼き、そのCD-R内にCD-R内全文検索プログラムを
組み込むというものです。
よろしくお願い致します。

Aベストアンサー

私は経験も知識も無いものですが、
A.PDFファイルを直接読んで検索する。
B.人間が操作して、下記RTFファイルまたはテキストファイルに抽出して、検索する。の2つが考えられると思います。
お手許にPDFファイルのファイルフォーマットは既にあるのでしょうか。
その後Adobe社にこの形式のファイルを読み検索するアプリを作成する(その後貴社でソフトを販売するのですか?それを明確に伝えて)のに認諾や契約や有償が必要なのか確認されましたか。
(1)AcrobatファイルはRTF形式にテキスト部分のみ落とせるとのことです。
http://www.keiyu.com/doc/pdftxt.htm
http://search.luky.org/linux-users.8/msg00983.html
http://www.pdf-seek.com/jyouhou/index.html
http://pc-training.hp.infoseek.co.jp/pdf.html
http://www.y-adagio.com/public/standards/tr_pdf/pdfmain.htm
(この中に「著作権認諾」のことも載っている。)
相当調べられたふうですが、「PDF」「テキスト」「ファイル形式」「ファイルフォーマット」などでWEB検索してみてください。
(2)この落としたファイルを対象に、自作の検索プログラムを作り、走らせる。
(3)(1)はAcrobatの「操作」ですから、その通り操作でやると
オフラインバッチ処理的になり、1ステップ入ってしまいます。
それで良いのでしょうか。もし操作を自動的にするマクロのようなものが
あればAと近くなり、良いのでしょうが。
(3)バッチ的になって良いなら、(1)を操作でさせて、RTFファイルを読みこみ、扱う方法を習得すれば、検索プログラムが出来ると思います。
検索は「JavascriptオブジェクトやAPI」にそのものズバリはあるはずは
無いと思います。WINやJAVAやその他で検索エンジンまでAPIになっている例があるのでしょうか。
すなわち言いたいことは、RTFの形式のフォーマット詳細を調べるとかして勉強し、処理言語を決めて扱える事ができるようになることがターゲットでしょう。
(4)あと文章検索について色々なアルゴリズムがあるようですので、それを調べて勉強し、その処理言語で使用できるようになることでしょう。クラスモジュールのようなものが販売されておれば、使えると早いでしょうが。
経験のないものがあれこれいっておりますが、目指し進む方向がちょっと
気になりましたので。得るものがあれば幸甚です。

私は経験も知識も無いものですが、
A.PDFファイルを直接読んで検索する。
B.人間が操作して、下記RTFファイルまたはテキストファイルに抽出して、検索する。の2つが考えられると思います。
お手許にPDFファイルのファイルフォーマットは既にあるのでしょうか。
その後Adobe社にこの形式のファイルを読み検索するアプリを作成する(その後貴社でソフトを販売するのですか?それを明確に伝えて)のに認諾や契約や有償が必要なのか確認されましたか。
(1)AcrobatファイルはRTF形式にテ...続きを読む

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Qアプリケーション終了時例外エラー(アクセス違反)の調査方法について

大変困っています。

アプリケーションが終了するときに「アクセス違反」がワトソン博士によって取得されています。
当方アプリケーションなどに弱く、解決策の想像が付きません。どなたかご教授お願いいたします。

<解決策例>
・どういったスキルを持った人にどの様な調査を進めさせれば良いのか。。。
・以前同様な事があり原因は○○だった
・恐らく○○だろう
 など、お願いいたします。

<ユーザ報告>
処理終了し、画面が消えたところでワトソン博士のメッセージが表示された

<ログ抜粋>
例外番号c0000005(アクセス違反)

ファンクション:RtlDestroyHeap
~略~
フォールト → 77f6d672 8908 mov [eax],ecx ds:09000001=00000000

<備考>
開発環境:MSVC6.0
動作環境:Windows NT4.0 SP6a
発生頻度:2回/年
使用頻度:2~3回/(平日)

以上、よろしくお願いします。

Aベストアンサー

発生頻度が年2回というのはなかなか厳しい条件ですね。

さて・・・

「私であれば、次の手順で調査を行います。」という書き始めで延々とデバッグ方法を書いていたのですが、書き終わってからちょっとGoogleで検索したら、ひょっとするとちょうど質問者さんのトラブルと同じかもしれない現象がMicrosoftのKBにありました。

場所はここです: http://support.microsoft.com/kb/168006/ja

要点をかいつまんで書くと、MSVCRT/MFCのDLLのバージョン不整合でエラーが発生することがある、という内容です。KB自体は特定のアプリケーションについて書かれていますが、記述されている現象と原因の関係から考えるに、他のアプリケーションでも同様の現象が発生すると思われます。

さてさて。

せっかく書いた文章を捨てるのがもったいないので(貧乏性)、邪魔かもしれませんが下に続けることにします。もし上のKBの内容がそれらしいようであれば、読み飛ばしてください。

========

私であれば、次の手順で調査を行います。

1. MAPファイル、CODファイル作成

「ワトソン博士のログを取得した際に実行していたEXEファイル」をビルドした際、一緒にMAPファイルやCODファイル(リスティングファイル)を作成していれば、そのファイルを用意しておきます。

もし作成していない場合は、「ワトソン博士のログを取得したEXEファイル」と、バイナリレベルで全く同じEXEファイル(バイト単位で比較すると、ファイルに埋め込まれたタイムスタンプ・チェックサム以外は一致する)が作成可能かどうか調べます。(ビルドに必要なソースファイルやビルドオプションに変更を加えていなければ作成可能です。)

作成可能であれば、コンパイルオプションに「リスティングファイルタイプ:マシン語コードとソースを含む」、リンクオプションに「MAPファイル作成」を追加してEXEを再作成してください。これで、「ワトソン博士のログを取得した際に実行していたEXEファイル」に対応するMAPファイルとCODファイルが得られます。

2. エラー発生行を特定

ワトソン博士のログがどれだけ取れているかにもよりますが、スタックダンプが含まれていればたいていエラー発生行を特定できます。

まず「フォールト->」が含まれる逆アセンブルリストを探します。次に、その下にある「スタックバックトレース」を探します。

スタックバックトレースを上から下に順にたどっていくと、そのうち「ReturnAd」(リターンアドレス)がアプリケーションのアドレス範囲(VC++6の標準オプション設定を変更していなければ0x00400000~)に入るところが出てきます。見つかったら、そのアドレスの直前にあるcall命令が例外を発生させたAPIを直接呼び出している場所です。

さて、仮にリターンアドレスが0x00401234だったとします。そうしたら、次はMAPファイルを見てこのアドレスがどの関数に属しているか探します。ちょうど0x00401234というアドレスは見つからないでしょうけれども、これに近いアドレスは見つかるはずです。そのアドレスに対応する関数名もMAPファイルにあります。

次はその関数名をCODファイルから探します。見つかったら、MAPファイルにあるアドレスがCODファイルにあるマシン語コードの先頭アドレスになるので、そこからリターンアドレス0x00401234に対応するはずの場所まで順番にアドレスを辿っていきます。関数の先頭アドレスが0x00401200であれば、0x34バイト先を探すわけです。

そうすると、その探した場所にある命令の直前の命令がcall命令になっているはずです。CODファイルには、その場所のC++ソースでの行番号とソース文もコメントとして入っているはずなので、あとは対応するソースをよーく見てエラーの見当をつけてください。

アセンブラの知識があれば、そこでcallを使った(他の関数を呼び出した)ときの引数の内容もある程度分かります。(ポインタ渡しだと、そのポインタの先の内容までは分かりませんが。)

3. 置き換え用EXEファイルと対応するMAPファイル作成

これ以降は将来への備えです。

コンパイルオプションでデバッグ情報を「プログラムデータベースを使用」、リスティングファイルタイプを「マシン語コードとソースを含む」、リンクオプションで「MAPファイルを作成する」、デバッグ情報「他の種類」を追加してビルドし、出来たEXEファイルを本番用として使用します。同時に作成されるMAPファイル、CODファイル、PDBファイルは保管しておきます。

MAPファイル、CODファイルの使い方は上記2.のとおりです。PDBファイルは、もし完全なクラッシュダンプが取得できればWinDbgを使って事後ソースレベルデバッグが可能になりデバッグ作業が非常に楽になるので、念のため取っておきます。

4. ワトソン博士のオプション変更

drwtsn32.exeを起動し、「クラッシュダンプファイルの作成」をチェックします。(デフォルトは、チェックが入っています。)

クラッシュダンプファイルとEXEとPDBがあればWinDbgで事後ソースレベルデバッグができます。(いわゆるポストモーテムデバッグです。UNIX系でコアダンプしたコアをデバッガで読み込んでデバッグするのと同じ種類のものです。)


普段何とも思わずに行っていることでも、文章にすると長いですね・・・

えーと、「どういうスキルを持った人に調査させればいいか」については、上記の内容を読んで『なるほど!』と言える人でしょうか。

参考URL:http://support.microsoft.com/kb/168006/ja

発生頻度が年2回というのはなかなか厳しい条件ですね。

さて・・・

「私であれば、次の手順で調査を行います。」という書き始めで延々とデバッグ方法を書いていたのですが、書き終わってからちょっとGoogleで検索したら、ひょっとするとちょうど質問者さんのトラブルと同じかもしれない現象がMicrosoftのKBにありました。

場所はここです: http://support.microsoft.com/kb/168006/ja

要点をかいつまんで書くと、MSVCRT/MFCのDLLのバージョン不整合でエラーが発生することがある、という内容です。KB...続きを読む

QDXFファイルを開くフリーソフトは?

MACで作成されたCAD図面(DXFファイル)をWindowsで開くことは出来るのでしょうか?
もしフリーソフトでそのようなものがあれば非常にうれしいのですが。。
是非とも教えて下さい。
よろしくお願いします。

Aベストアンサー

DXFは、テキスト・ファイルなのでMACで作成したものであってもWindowsで開けるはずです。
(windowsは、そのままではMacで作成したファイルを開けないので、windows用に変換する必要があります。)

DXFを開けるフリーソフトとしては、JW_CADやDWG TrueView(Autodesk)があります。
http://www.jwcad.net/
http://www.autodesk.co.jp/adsk/servlet/index?id=7126351&siteID=1169823

JW_CADは、日本で一番ユーザーの多いCADですが、DXFを読む込むと大きさと位置が不定になり、
自分の思っているイメージとかなり違う場合があります。

TrueViewは、AutoCADを作っているAutodeskが、公開しているソフトです。
読み込めるファイル形式は、DWGとDXFの2種類があります。
(この2つのファイル形式を決めているのがAutodeskです。)
特にDXFは、AutoCAD以外が作成した物はAutodeskの製品で読み込め無い場合が多々ありますので注意が必要です。

windows版のvectorを扱った経験から言うとTrueViewのほうがJW_CADより元データの再現性は良いと思います。

DXFは、テキスト・ファイルなのでMACで作成したものであってもWindowsで開けるはずです。
(windowsは、そのままではMacで作成したファイルを開けないので、windows用に変換する必要があります。)

DXFを開けるフリーソフトとしては、JW_CADやDWG TrueView(Autodesk)があります。
http://www.jwcad.net/
http://www.autodesk.co.jp/adsk/servlet/index?id=7126351&siteID=1169823

JW_CADは、日本で一番ユーザーの多いCADですが、DXFを読む込むと大きさと位置が不定になり、
自分の思っているイメージと...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報