exeファイルを非表示にしたいのですが、VBコードなので、VC++のコードの中に入れてVC++のコードから呼び出せます(myfile.exe)またはexecute(myfile.exe)を実行します。 しかし、VC++の中にどのように追加することはできません!VC++のexeプログラムにEXEファイルを埋め込むにはどうすればいいですか?
答えて
Resourcesを使用するとできます。
あなたが作業する必要がある2つの段階があります。
- ビルド時間:あなたのC++アプリケーションを構築するとき、あなたは(埋め込み)を含むようにVisual Studioのを指示する必要がありVB実行ファイルが(リソースとしてresource.exe)をプロジェクト出力(それが生成する実行可能ファイルC++実行可能ファイル)に指定しました。 (もちろん)、そのためには、ビルド時にVB実行可能ファイルを持っている必要があり
- 実行時間:あなたのC++アプリケーションは、自分自身からリソースを取得し、ファイルに保存し、それを実行できなければなりません。
私がテストした(動作している)プロトタイプです。両方によって含まれる定数の定義を持つだけで、ファイル -
res.h:あなたは(私はバージョン10.0を使用しています(2010))あなたのVStudioでプロジェクトを含める必要がある3つのファイルがあります。他のファイル。 ヘッダーファイルの下に含めます。
#define EXE_NAME "resource.exe" #define RES_TYPE_UNQUOTED RAW #define RES_NAME_UNQUOTED EXECUTABLE
exe.rc - (できるだけ簡素化されるように)、これはリソースファイルです。 リソースファイルの下に含めます。 注:VStudioからファイルを編集しようとすると、リソースエディタでファイルに何らかのクラップスが含まれていると予想されるため(デフォルトではVStudio)挿入が失敗します。
#include "res.h" RES_NAME_UNQUOTED RES_TYPE_UNQUOTED EXE_NAME
main.cの - メインコードファイル。 ソースファイルの下に含めます。リソースを自身からロードし、ファイルに保存して、そのファイルを実行しようとします。デバッグにコメントのコードを使用しましたが、もはや必要ありませんが、とにかくそれを残しました。 これは単なる例であり、コードはエラー処理、リソース編成などの面ではるかに優れています。
#include <stdio.h> #include <Windows.h> #include "res.h" #define STRINGIFY(X) #X #define QUOTE(X) STRINGIFY(X) #define RES_TYPE QUOTE(RES_TYPE_UNQUOTED) #define RES_NAME QUOTE(RES_NAME_UNQUOTED) /* #define NULL_STR "null" BOOL CALLBACK EnumResNameProc(_In_opt_ HMODULE hModule, _In_ LPCTSTR lpszType, _In_ LPTSTR lpszName, _In_ LONG_PTR lParam) { if (IS_INTRESOURCE(lpszName)) printf(" ResourceName(int): [%d]\n", lpszName); else { printf(" ResourceName(str): [%s]\n", lpszName ? lpszName : NULL_STR); printf(" Resource addr: %08X\n", (long)FindResource(NULL, lpszName, lpszType)); } return TRUE; } BOOL CALLBACK EnumResTypeProc(_In_opt_ HMODULE hModule, _In_ LPTSTR lpszType, _In_ LONG_PTR lParam) { if (IS_INTRESOURCE(lpszType)) printf(" ResourceType(int): [%d]\n", lpszType); else printf(" ResourceType(str): [%s]\n", lpszType ? lpszType : NULL_STR); EnumResourceNames(NULL, lpszType, EnumResNameProc, lParam); return TRUE; } //*/ int main() { HANDLE fp = NULL; HRSRC res = NULL; HGLOBAL global = NULL; char *buf = NULL; DWORD size = 0, written = 0; int ret = -1; /* EnumResourceTypes(NULL, EnumResTypeProc, NULL); printf("[%s][%s]\n", RES_NAME, RES_TYPE); //*/ if ((res = FindResource(NULL, RES_NAME, RES_TYPE)) == NULL) { printf("FindResource error: %d\n", GetLastError()); return 1; } if ((global = LoadResource(NULL, res)) == NULL) { printf("LoadResource error: %d\n", GetLastError()); return 2; } if ((size = SizeofResource(NULL, res)) == 0) { printf("SizeofResource error: %d\n", GetLastError()); return 3; } if ((buf = (char*)LockResource(global)) == NULL) { printf("LockResource error: %d\n", GetLastError()); return 4; } if ((fp = CreateFile(EXE_NAME, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL , NULL)) == INVALID_HANDLE_VALUE) { printf("CreateFile error: %d\n", GetLastError()); return 5; } if (WriteFile(fp, buf, size, NULL, NULL) == FALSE) { printf("WriteFile error: %d\n", GetLastError()); CloseHandle(fp); return 5; } CloseHandle(fp); ret = system(EXE_NAME); printf("system returned %d\n", ret); return 0; }
あなたは私にソースコードとファイルをリンクで送ってください、私は感謝します –
うーん、私はそれを行う方法がわかりません。しかし、あなたがする必要があるのは、3つのファイルを作成し、それらに列挙した対応するコードブロックをコピー&ペーストすることだけです。 – CristiFati
ちょうどDropboxまたはGoogleドライブ –
- 1. バイナリイメージ/プログラム実行可能ファイル/ .exeにリソースを埋め込む?
- 2. PyinstallerでEXEにウィンドウアイコンを埋め込む
- 3. すべてのファイルを1つのexeファイルに埋め込む
- 4. VB.netアプリケーションに.exeを埋め込む
- 5. MFC C++ EXEにDLLを埋め込む?
- 6. 埋め込みEXEファイルが
- 7. Webページ内に既存の.exeファイルを埋め込む
- 8. コンパイル済みの.exeにファイルを埋め込む
- 9. jspページにアプリケーション(.exeなど)を埋め込む方法
- 10. VB6でEXEファイルにファイルを埋め込みます
- 11. ウェブページに.epubを埋め込むにはどうすればいいですか?
- 12. 私のブートストラップにMSIを埋め込む方法exe
- 13. WPF EXEに複数のアイコンを埋め込む
- 14. は、私は、アプリケーションのリリース.exeファイルは、後のexeファイル、削除アプリの後を作成するときにEXEファイルに埋め込まれ</p> <p>に...などれたconnectionStringなどのApp.configファイルデータであるアプリケーションを作成したいEXEファイル
- 15. iFrame埋め込みHTML5ビデオをFacebookのニュースフィードに埋め込むにはどうすればよいですか?
- 16. XSLTファイルを.NETプロジェクトに埋め込み、出力.exeに含めるにはどうすればいいですか?
- 17. Qt Creator:.exeにカスタムマニフェストを埋め込む方法
- 18. コンフルエンスページにローカルビデオを埋め込むにはどうすればよいですか?
- 19. UIViewにUITableViewを埋め込むにはどうすればよいですか?
- 20. WebKitをウィンドウに埋め込むにはどうすればよいですか?
- 21. JSXをjavascriptに埋め込むにはどうすればよいですか?
- 22. アンドロイドアプリでカスタムストリートビューを埋め込むにはどうすればよいですか?
- 23. SwiftのプログラムでUIViewにViewControllerを埋め込むにはどうすればよいですか?
- 24. 標準EXEとWinService EXEを互いに通信するにはどうすればよいですか?
- 25. 別の.exe en C++から.exeにコマンドを送信するにはどうすればよいですか?
- 26. * .dll(*。exe、*。msi)ファイルからシグネチャリストをプログラムで取得するにはどうすればよいですか?
- 27. プログラムでSWFをPDFに埋め込むにはどうすればよいですか?
- 28. .apkファイルに埋め込む.soファイルを保護するにはどうすればよいですか?
- 29. C#で.exeに埋め込まれたローカライズされたリソース(.dll)
- 30. Javaアプリケーションの.exe版をインストールする.exeインストーラを作成するにはどうすればよいですか?
どのような提案ですか? –
私の答えはあなたの問題を解決しましたか? – CristiFati