Google
 
Web itpro-blogger.blogspot.com
水曜日, 4月 30, 2008

[VC2005]GetGmtTmとGetLocalTmでエラー

▼質問
GetGmtTmとGetLocalTmメソッドで次のエラーが出る。
「Debug Assertion Failed! Program: パスZZZZ.exe File: パス\atltime.inl Line: 999
Expression: _atl_condVal
For information on how your program can cause an assertion failure. see the Visual C++
documentation on asserts.
(Press Retry to debug the application)」

▼回答
インクルードやデファインを次の様にすれば上手く行くよ!
#pragma warning(disable: 4996)
#define _SECURE_ATL 0
#include
#include
#include
#include
#include
#define ATLTIME_INLINE inline
#include
#include
#define ATLCOMTIME_INLINE inline
#include

■参考サイト
A problem with ATL::CTime.GetLocalTm() - MSDN Forums
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=126206&SiteID=1
ワーニングを抑制する方法 - #pragma warning - VC++
http://www.ailight.jp/blog/sha256/archive/2005/05/04/6684.aspx


木曜日, 4月 24, 2008

[C言語]Run-Time Check Failure #2エラー

▼質問
次のエラーが発生する。
「Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted」

▼回答
「xxx」を使っているサイズをチェックすることぐらいかな?!

多分、格納しようとしているサイズが「xxx」より大きいじゃないのかな!?


金曜日, 4月 18, 2008

[VB2005]OO4Oの警告

▼質問
次の警告が出る。どうして?
警告 1 '_IOraBindVariable.GetPersistentPointer' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 2 プロパティ get アクセス操作子 'ResultCode' (有効な戻り値の型のない型 'OracleInProcServer._IExDispatch' 上) がタイプ ライブラリ インポータで見つかりました。インポータはこのプロパティをメソッドとしてインポートすることを試行します。
警告 3 '_IOraBlob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 4 'OraBlob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 5 '_IOraClob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 6 'OraClob._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 7 '_IOraBfile._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。
警告 8 'OraBfile._ReadCPP' の引数のうち少なくとも 1 つをランタイム マーシャラでマーシャリングできません。したがってこのような引数はポインタとして渡され、アンセーフ コードの使用が必要になります。

▼回答
Oracle InProc Server 5.0 Type Library (oip10.tlb) を追加してリビルドすると1度目はでないようだ。

2度目のリビルドで発生することがわかったが・・・。何の解決にもならない。。。

ん~わからない。

毎回、リビルドするたびに削除してリビルドして追加してリビルドするのか!?

めんどくせー!!

もう少し調べて次の様にすることにした。

プロジェクトプロパティ→コンパイル→「ビルド イベント」ボタンのビルド前と後で次のイベントを
実行するようにした。

ビルド前に実行するコマンド ライン
Copy $(ProjectDir)*.dll $(ProjectDir)\obj\Release
Copy $(ProjectDir)*.cache $(ProjectDir)\obj\Release

ビルド後に実行するコマンド ライン
Copy $(ProjectDir)obj\Release\*.dll $(ProjectDir)
Copy $(ProjectDir)obj\Release\*.cache $(ProjectDir)

完璧じゃないけど・・・少しはましになったかも?!

無視してもいい警告だからリビルドしてビルドするだけども良いかも?!

それにしても、よくわからん!!


火曜日, 4月 15, 2008

[C#]Windowアプリケーションの基本機能

▼質問
フォームに「閉じる」ボタンを貼ったんだけど、「閉じる」ボタンがクリックした時の

イベント処理の方法がわからないんだけど。

VBだとMeなんだけど...

▼回答
C#は、thisを使って次の様に記述するんだ。

this.Close();

■参考サイト
[C#][VB]フォームを閉じる
http://jeanne.wankuma.com/tips/form/close.html


月曜日, 4月 14, 2008

[VB2005]PrintDocumentコントロール

▼質問
印刷の前に出るメッセージの表示名はどうやったら変更できるの?

▼回答
DocumentNameプロパティを変更すれば表示が変わるよ。
Me.PrintDocument1.DocumentName = "表示名"


[VB2005]文字サイズチェック

▼質問
データベースに文字列を格納する時に下記のエラーが出るんだ。

ORA-12899: 列"○×△□"."テーブル名"."フィールド名"の値が大きすぎます(実際: 256、最大: 255)

文字列のサイズをチェックをして、格納サイズより大きい時は

格納サイズより大きい部分は削除したいんだ。どうしたらできるんだい。

文字数のチェックはMaxLengthプロパティに値を入れておけば

自動的にやってくれてはいるんだけど...

▼回答
こんなのできたよ。

Public Shared Function ChkByte(ByVal strValue As String, ByVal byteSize As Integer) As Boolean
If (System.Text.Encoding.GetEncoding("Shift-JIS").GetByteCount(strValue) <= byteSize) Then ChkByte = True
End Function

Public Shared Function GetByte(ByVal strValue As String, ByVal byteSize As Integer) As String
Dim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift-JIS")
Dim bBytes As Byte() = hEncoding.GetBytes(strValue)
Dim count As Long
For i As Long = Len(strValue) To 1 Step -1
If (ChkByte(Mid(strValue, 1, Len(strValue) - count), byteSize)) Then
Return System.Text.Encoding.GetEncoding("Shift-JIS").GetString(bBytes, 0, Len(strValue) - count)
End If
count = count + 1
Next i
Return strValue
End Function

■参考サイト
VB.NET 全角・半角でのLEFT関数 - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24347&forum=7&start=8


木曜日, 4月 03, 2008

[VB2005]閉じるボタンのキャンセル

▼質問
閉じるボタン(「×」ボタン)をクリックされても閉じないようにするにはどうしたらいいの?

▼回答
FormClosingイベントで次のコードを記述すればできるらしいよ。(^^;

If (e.CloseReason = CloseReason.UserClosing) Then
e.Cancel = True
End If


■参考サイト
ウィンドウの閉じるボタンを押しても終了させない
http://katamari.jp/index.php?dev%2Fvb%2F%A5%A6%A5%A3%A5%F3%A5%C9%A5%A6%A4%CE%CA%C4%A4%B8%A4%EB%A5%DC%A5%BF%A5%F3%A4%F2%B2%A1%A4%B7%A4%C6%A4%E2%BD%AA%CE%BB%A4%B5%A4%BB%A4%CA%A4%A4


This page is powered by Blogger. Isn't yours?