Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
да и вообще приведения типов не хватает, как и нормальной поддержки напримера типа void. В результате нельзя передать в функцию нетипизированный массив. С одной стороный из-за неявного приведения типов все равно какой передавать, а с другой - нельзя, компилятор не кушает. Продемонстрирую примером:
Приходится делать так, нельзя вместо этого одну функцию заделать.
Можно так:
Это что ШУТКА?
static double struct.price; //компилируется
static double struct.price //НЕ компилируется, скобку выплевывает.
{ int i;
double j;
};
Может быть struct.price нужно определять в *.h? Поясните пожалуйста неторопясь.
и следующий за ним составной оператор
Например в функцию GetWindowRect из user32.dll надо передавать структуру типа RECT, которая состояит из 4-ех интов: Left, Top, Right. Bottom. Вместо стркутры можно использовать массив инт из 4-ех элементов. Есть структуры, которые состоят не только из int, еще из double, bool и string. В этом случае тоже только один вариант - использовать один массив из интов, а вот потом рассчитать значение каждой переменной используя этот массив.
Можно попробовать тупо передать набор переменных
например вместо
Struct MуStructure {
double price;
long int time;
};
MуStructure MуStructure1;
MуStructure1.price=3.62;
MуStructure1.time=....;
и затем объявления вызова
int dllproc (MуStructure);
объявить функцию из dll как
int dllproc (double price, long int time);
иногда проходит.
Зависит от того, как упакованы данные в структуре. И не передается ли она вообще по ссылке ;)
Хмм, интересная тема. А что если...
объявляем так:
#import "..."
void fillStruct(int &i[]);
void func()
{
int i;
double d;
char a[16];
fillStruct(i);
}
Так вот, если переменные хранятся в одной памяти и они не выровнены, то может прокатить. В dll эта функция будет объявлена как void fillStruct(MyStruct *s)....
Пробовать лень, если кто проверит, пишите результат...