Форум сетевых администраторов
Показаны 3 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- C/C++ (http://netadmin.ws/forum/forumdisplay.php?forumid=8)
-- Помоги написать и подключить библиотеку (http://netadmin.ws/forum/showthread.php?threadid=6822)


Помещено Artemka 15-10-2003 в 12:05:

Помоги написать и подключить библиотеку

Привет всем.
Прошу помощи написать библиотеку и подключить её к Excel через VBA чтобы по нажатию кнопки на форме

функция в библиотеке - должна удалять файлы по маске из каталога.
тип файла указывается в ячейке a1 и каталог или путь до него полный в ячейке a2


Помещено mEGaZ0Id[SE] 28-10-2003 в 09:43:

VBA - not C++.

__________________
Хочу присоединиться к какому-нибудь проекту. Пишите.


Помещено Artemka 28-10-2003 в 15:36:

Да ты что? хочешь для тебя будет новость?

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


Формат времени GMT. Текущее время 05:44.
Показаны 3 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.