tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルエラーについて教えて下さい
記事No9090
投稿日: 2009/06/16(Tue) 20:11
投稿者困りモノ
VB2005を使用しています。初心者です。下記のようなエラーが出てしまい困っています。
いろいろ調べたのですが、解決方法がどうしても見つかりません。
どうかご教授の頂けないでしょうか?

*エラー内容*
PInvokeStackImbalance が検出されました。
PInvoke 関数 'WindowsApplication1!WindowsApplication1.Module1::GetPixel' がスタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲット シグネチャに一致していないことが原因として考えられます。呼び出し規約、および PInvoke シグネチャのパラメータがターゲットのアンマネージ シグネチャに一致していることを確認してください。

*コード*
Dim gp As Graphics = Me.CreateGraphics  
Dim ahDC As IntPtr = gp.GetHdc()        
Dim iro As Long = GetPixel(ahDC, 100, 100)  

よろしくお願いします。

[ツリー表示へ]
タイトルRe: エラーについて教えて下さい
記事No9091
投稿日: 2009/06/16(Tue) 20:36
投稿者Hongliang
VB6 までの Long は VB7(VB2002) 以降 Integer に置き換わっています。

[ツリー表示へ]
タイトルRe: エラーについて教えて下さい
記事No9092
投稿日: 2009/06/16(Tue) 20:46
投稿者オショウ
> *エラー内容*
> PInvokeStackImbalance が検出されました。
> PInvoke 関数 'WindowsApplication1!WindowsApplication1.Module1::GetPixel' がスタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲット シグネチャに一致していないことが原因として考えられます。呼び出し規約、および PInvoke シグネチャのパラメータがターゲットのアンマネージ シグネチャに一致していることを確認してください。

<DllImport("gdi32.dll")> _
Private Shared Function GetPixel(ByVal hdc as IntPtr,ByVal nXPos as Integer,ByVal  nYPos as Integer) as UInt32
End Function

かな・・・

それより・・・
http://blog.goo.ne.jp/us_beretta/e/0e41889d15b2ce337c02f2358993b2f7

これ参考になりませんか?

API呼ばなくても、.NETだけで行える。

以上。

GetPixcelの宣言、どうなってます?

以上。

[ツリー表示へ]
タイトルRe^2: エラーについて教えて下さい
記事No9093
投稿日: 2009/06/17(Wed) 08:29
投稿者困りモノ
Hongliang様、オショウ様 ご教授ありがとうございます。
GetPixcelの宣言を修正した所、エラーが出なくなりました。


> API呼ばなくても、.NETだけで行える。

いろいろな方法があるのですね!
まだまだ勉強不足でした。

ありがとうございました。

[ツリー表示へ]