Участник

Зарегистрирован: Oct 2003
Место проживания:
Публикаций: 12
Статус:  |
quote: Первоначальное сообщение от mEGaZ0Id[SE]
VBA - not C++.
Да ты что? тебе кто такое сказал? хочешь для тебя будет новость?
#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include<math.h>
BOOL APIENTRY DllMain (
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpReserved )
{
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
//delete.cpp
extern "C" __declspec(dllexport) long __stdcall DeleteFilesByMask(char* mask, char* path)
{
WIN32_FIND_DATA fd;
HANDLE hSearch;
char* buffer = new char[1024];
ZeroMemory(buffer, 1024);
size_t plen = strlen(path);
CopyMemory(buffer, path, plen);
buffer[plen] = '\';
CopyMemory(buffer+plen+1, mask, strlen(mask));
long count = 0;
hSearch = FindFirstFile(buffer, &fd);
char* fullname = new char[1024];
if(hSearch == INVALID_HANDLE_VALUE)
{
delete buffer;
delete fullname;
return 0;
}
do
{
count++;
ZeroMemory(fullname, 1024);
CopyMemory(fullname, path, plen);
fullname[plen] = '\';
CopyMemory(fullname+plen+1, fd.cFileName, strlen(fd.cFileName));
DeleteFile(fullname);
}
while(FindNextFile(hSearch, &fd));
delete fullname;
delete buffer;
return count;
}
MyLaba.def
LIBRARY MyLabaDLL
Exports
DeleteFilesByMask
В файл Excel
Private Declare Function DeleteFilesByMask Lib "mydll.dll" Alias " _DeleteFilesByMask@8 " (ByVal mask As String, ByVal path As String) As Long
Private Sub CommandButton1_Click()
Dim removed As Long
' значения из ячеек (Cells) поставить
DeleteFilesByMask ("*.tmp", "C:\TEMP")
End Sub
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|