
VB.NETを使用してファイルのコピーをしようと思っています。
そのソースはVB6で使用したソースをバージョンアップして使う予定です。
ファイルコピーをする際にSHFileOperationというAPIを使用していました。
.NETへ移行すると、実行時にエラーが帰ってきてしまいます。
VB6と.NETではAPIの宣言の仕方も異なるのでしょうか?
バージョンアップ後に追加されたメッセージで、'UPGRADE_WARNING: 構造体 SHFILEOPSTRUCT に、この Declare ステートメントの引数としてマーシャリング属性を渡す必要があります。 詳細については、'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1050"' をクリックしてください。
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
このように書き換わっていました。リンク先を見ても解決の糸口が見えません。
どなたかご指導お願いします。
No.2ベストアンサー
- 回答日時:
以前試しに使ったコードです。
参考にどうぞ。Public Structure SHFILEOPSTRUCT
Dim hWnd As IntPtr 'Handle
Dim wfunc As Integer '&H2
Dim pform As IntPtr 'Marshal.StringToCoTaskMemAnsi(フォルダパス & "*.*")
Dim pto As IntPtr 'Marshal.StringToCoTaskMemAnsi(フォルダパス)
Dim fFlags As Integer
<MarshalAs(UnmanagedType.Bool)> Dim fAnyOperationAborted As Boolean
Dim hNamemappings As IntPtr
Dim lpszProgressTitle As IntPtr
End Structure
No.1
- 回答日時:
SHFILEOPSTRUCT構造体の定義はどう書いてます?
この構造体は、普通のWin32APIの構造体とは異なりパッキングが1バイトです。
この回答への補足
返答ありがとうございます。
Private Structure SHFILEOPSTRUCT
Dim hWnd As Integer
Dim wFunc As Integer
Dim pFrom As String
Dim pTo As String
Dim fFlags As Short
Dim fAnyOperationsAborted As Integer
Dim hNameMappings As Integer
Dim lpszProgressTitle As String
End Structure
VB6から何も変えていないので上記のようになっています。
このAPIの構造が違っているのがコピー出来ない原因なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- C言語・C++・C# pythonで外部のファイルを読み込む際のエラー 2 2022/04/12 19:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) M365環境での動作エラー、及び対応相談 1 2023/01/27 04:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
同じファイル名 上書きしないフ...
-
Vba初心者です。下記のコード助...
-
[エクセル]コピーするとオブジ...
-
ファイルサーバ上のファイルが...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
アクセス クエリを別のファイ...
-
バッチファイル 別ファイルにリ...
-
ハイフネーションされている英...
-
エクセル2010、図が大きすぎま...
-
パワポでスライドをコピーでき...
-
バッチファイルのコピーで
-
frxファイルの役目
-
ページの複製はどうすればいい...
-
Filecopyステートメントでエラー
-
vbsでExcelのシートをコピーす...
-
エクセルVBAで開いているファイ...
-
xcopyでのバッチコピー方法でコ...
-
開いている別のファイルにExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
ファイルサーバ上のファイルが...
-
Vba初心者です。下記のコード助...
-
MSオフィス2013にMS365が上書き...
-
同じファイル名 上書きしないフ...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
vbsでファイルやフォルダのコピ...
-
マインクラフトPCをプレイしよ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
FTPとファイルコピーの違いにつ...
おすすめ情報