Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2012, 13:49   #1
All_Ex
Пользователь
 
Регистрация: 06.01.2012
Сообщений: 22
По умолчанию Использование функций C в VB

VB не изобилует встроенными функциями.
В то же время в библиотеках Microsoft C Runtime Library огромное
количество полезных функций.
Но...
Вызов этих библиотек из VB ни к чему хорошему не приведет.
Выход:
пишем собственную C++ библиотеку с аналогами нужных функций.
//StrNum.h
namespace StrNum
{
class MyStrNum
{
public:
static __declspec(dllexport) int IsNum(int ch);
};
}
//StrNum.cpp
#include "StrNum.h"
#include <stdexcept>
#include "stdafx.h"
#include <tchar.h>
using namespace std;
namespace StrNum
{
int MyStrNum::IsNum(int ch)
{
int a;
a=isalnum(ch);
return a;
}
}

Компилируем.Получаем DLL с полной дрянью в секции экспорта типа:
?IsNum@MyStrNum@StrNum@@SAHH@Z
Правим экспорт в hex-редакторе.
(Читайте мою статью "Как превратить EXE в DLL")
Получаем DLL с функциями C (для работы с символами), которые работают в среде VB.

Справка к вложению:

Функция IsAlnum
IsAlnum(ByVal ch As Integer)As Integer
Если аргумент является буквой или цифрой, функция isalnum() возвращает ненулевое значение, в противном случае возвращается нуль.
Функция IsAlpha
IsAlpha(ByVal ch As Integer)As Integer
Если аргумент является буквой, функция isalpha () возвращает ненулевое значение, в противном случае возвращается нуль. Является ли символ буквой, зависит от языка. В английском алфавите буквами считаются строчные и прописные символы от А до Z.
Функция IsPrint
IsPrint(ByVal ch As Integer)As Integer
Если аргумент является печатаемым символом, включая пробел, функция isprint () возвращает ненулевое значение, в противном случае возвращается нуль. Как правило, печатаемые символы расположены в диапазоне от 0x20 до 0х7Е.
Функция IsPunct
IsPunct(ByVal ch As Integer)As Integer
Если аргумент является знаком пунктуации, функция ispunct () возвращает ненулевое значение, в противном случае возвращается нуль. К знакам пунктуации относятся все печатаемые символы, не являющиеся буквами, цифрами и пробелами.
Функция IsSpace
IsSpace(ByVal ch As Integer)As Integer
Если аргумент является пробелом, знаком горизонтальной или вертикальной табуляции, символом возврата каретки или перехода на новую строку, функция isspace () возвращает ненулевое значение, в противном случае возвращается нуль.
Функция IsUpper
IsUpper(ByVal ch As Integer)As Integer
Если аргумент является прописной буквой, функция isupper () возвращает ненулевое значение, в противном случае возвращается нуль.
Функция IsXdigit
IsXdigit(ByVal ch As Integer)As Integer
Если аргумент является цифрой или буквой английского алфавита, функция isxdigit () возвращает ненулевое значение, в противном случае возвращается нуль.
(Среда Microsoft Visual Studio 2008)

Желаю успеха.
Вложения
Тип файла: rar ischar.rar (7.8 Кб, 11 просмотров)
All_Ex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование функций С++ ignat129 Помощь студентам 5 13.05.2012 16:15
Использование функций С++ Eskared Помощь студентам 2 05.12.2011 19:12
Использование функций в Си (=Hello=) Общие вопросы C/C++ 46 11.11.2011 17:41
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Использование функций prikolist Общие вопросы C/C++ 15 06.04.2009 18:42