- PR -

C#2005のレポートでPDF出力すると

1
投稿者投稿内容
Kuma
ベテラン
会議室デビュー日: 2001/12/20
投稿数: 66
投稿日時: 2006-03-17 14:03
VisualStudio2005のC#で

http://msdn2.microsoft.com/ja-JP/library/ms252073(VS.80).aspx

にそって、テストプログラムを作成しました。
日本語混じりのデータを表示されているものをPDFにエクスポートすると、

PInvokeStackImbalance

PInvoke 関数 'Microsoft.ReportViewer.Common!Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF+WindowsGDIWrapper::GetGlyphIndicesW' がスタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲット シグネチャに一致していないことが原因として考えられます。呼び出し規約、および PInvoke シグネチャのパラメータがターゲットのアンマネージ シグネチャに一致していることを確認してください。

のエラーが出ます。
英数字のみのものはちゃんとPDFに出力されます。
Excel出力はどちらでもOKです。

回避策をご存知であれば、教えていただきたいのですが。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-17 19:04
こんにちは。

私も同じエラーに遭遇しました。
解決にはなっていないですが、Crystal Reports でレポートを作り直して PDF出力を実現しました。

この PInvoke のエラーの解決方法、私も教えていただきたいです。
rabi
会議室デビュー日: 2006/06/07
投稿数: 14
投稿日時: 2006-06-17 13:46
わたしも、以下同文で同じ問題が出ました・・・。
エラーだった関数は「FindWindowEx」です。
VB.NETの時は、通っていたのですが・・・。

Const WINDOW_NAME2 As String = "InstallShield Wizard"
Const BUTTON_NAME2 As String = "完了"
Dim hWnd As Long '親ハンドル
Dim hChild As Long '子ハンドル

hWnd = FindWindow(vbNullString, WINDOW_NAME2) 'Windowハンドルの取得
If hWnd <> 0 Then 'ハンドルを取得できなかった場合は、終了
hChild = FindWindowEx(hWnd, 0, vbNullString, BUTTON_NAME2) 'ボタンのWindowハンドルを取得する
If hChild <> 0 Then 'ハンドルを取得できなかった場合は、終了
Exit Sub
End If
End If

VB 2005初めてまだ、間もない物で・・・。
ご助力をお願いします。


[ メッセージ編集済み 編集者: rabi 編集日時 2006-06-17 13:48 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-18 08:20
引用:

Kumaさんの書き込み (2006-03-17 14:03) より:

英数字のみのものはちゃんとPDFに出力されます。


ここを見るに、不具合の可能性がありますね。
MSDN フォーラムへフィードバックしてみてください。

  Visual Studio フィードバック

報告前に、PDF へ出力するだけのミニマム コードを作っての評価もしておくと良いと思います。
この時、アンマネージ関数などは使わないように評価してみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-18 20:34
ueです。
引用:

じゃんぬねっとさんの書き込み (2006-06-18 08:20) より:
MSDN フォーラムへフィードバックしてみてください。


アドバイスありがとうございます。
MSDN フォーラムへフィードバックしました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=484837&SiteID=7

Kumaさん、rabiさん、フィードバックの内容に足りない部分がありましたらフォローをお願いします。
Kuma
ベテラン
会議室デビュー日: 2001/12/20
投稿数: 66
投稿日時: 2006-06-19 10:38
引用:

ueさんの書き込み (2006-06-18 20:34) より:

MSDN フォーラムへフィードバックしました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=484837&SiteID=7




ありがとうございます。
修正版早くできるといいですね。
1

スキルアップ/キャリアアップ(JOB@IT)