lm68140318 发表于 2023-10-6 10:20:25

MASM32_SDKv10r

我的问题:怎么选择文件夹 ?

isdkz 发表于 2023-10-6 10:20:46

您可以使用MASM32 SDK v10r中的GetFolderPath函数来选择文件夹。以下是一个简单的示例代码,演示如何使用该函数:

.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\shell32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\shell32.lib
includelib \masm32\lib\kernel32.lib

.data
title db "选择文件夹",0
buffer db MAX_PATH dup(0)

.code
start:
    invoke GetFolderPath, NULL, CSIDL_DESKTOPDIRECTORY, NULL, SHGFP_TYPE_CURRENT, buffer
    invoke MessageBox, NULL, addr buffer, addr title, MB_OK
    invoke ExitProcess, NULL

end start


在这个示例中,我们使用GetFolderPath函数来获取桌面文件夹的路径,并将其存储在buffer变量中。然后,我们使用MessageBox函数来显示该路径,最后使用ExitProcess函数退出程序。

请注意,GetFolderPath函数需要四个参数。第一个参数是窗口句柄,如果您不需要使用窗口,则可以将其设置为NULL。第二个参数是要获取的文件夹的常量,例如CSIDL_DESKTOPDIRECTORY表示桌面文件夹。第三个参数是一个让您指定文件夹路径的字符串,如果您不需要指定路径,则可以将其设置为NULL。第四个参数是一个标志,用于指定要返回的路径类型。在这个示例中,我们使用SHGFP_TYPE_CURRENT标志来获取当前用户的路径。

希望这可以帮助到您!

Mike_python小 发表于 2023-10-6 10:21:00

选择文件夹可以通过使用MASM32 SDK中的相关函数来实现。以下是一个示例代码,演示如何选择文件夹并将所选文件夹的路径存储在一个字符串变量中:

assembly
.386
.model flat, stdcall

include windows.inc
include user32.inc
includelib user32.lib
include shell32.inc
includelib shell32.lib

.data
szTitle db "选择文件夹",0
szFolderPath db MAX_PATH dup(0)

.code
start:
invoke CoInitialize, NULL
invoke SHBrowseForFolder, NULL, NULL, NULL, addr szTitle, NULL
mov ebx, eax ; 保存返回的句柄
invoke SHGetPathFromIDList, ebx, addr szFolderpath
invoke CoUninitialize

; 在这里可以使用szFolderPath的值进行进一步处理

invoke ExitProcess, 0

end start


请注意,这只是一个基本的示例,你可能需要根据自己的需求进行修改和扩展。编译和运行此代码需要正确配置MASM32环境和相关库文件。

希望这能帮助到你!如果你有更多问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: MASM32_SDKv10r