Сообщения пользователя Karrde — Форум CodeNet
« Вернуться к профилю пользователя Karrde
5.1K
04 августа 2011 года
Karrde
88 / / 15.10.2007
5.1K
04 августа 2011 года
88 / / 15.10.2007
5.1K
04 августа 2011 года
Karrde
88 / / 15.10.2007
5.1K
04 августа 2011 года
88 / / 15.10.2007
Ну не знаю. я думал ввести поток внутрь длл, чтобы потом абстрагироваться и не париться по поводу потоков в основном проекте. Сделал запрос в длл на расчет, запрос добавился в пул, выполнился, и ивентом в основной проект выдал результат.
З.Ы. backgroundworker, по-моему, вещь очень глючная, да и не обеспечивает нормальный функционал(по крайней мере когда я последний раз его видел). Thread-гораздо более удобная вещь(ну это уже так, в сторону от темы)
5.1K
04 августа 2011 года
Karrde
88 / / 15.10.2007
5.1K
04 августа 2011 года
88 / / 15.10.2007
Доброго времени суток. Возникла такая проблема: в длл-ке создается поток, идет расчет, и в итоге результат надо вывести результат расчета на форму. Пытался сделать с помощью ивента, но в потоке ивент класса не виден и не вызывается. В какую сторону копать?
5.1K
18 сентября 2010 года
Karrde
88 / / 15.10.2007
Возникла проблема. нужно как-то пометить часть trackbar'а. Т.е. чтобы сам trackbar оставался таким же, но, например, некоторое количество нужных мне делений было как то выделено, помечено(Причем они могут быть и посередине, но будут идти подряд, без прерываний). Кто что посоветует?)
5.1K
18 августа 2010 года
Karrde
88 / / 15.10.2007
ну я не сказал, что это сторонняя прога непрерывно пишет. насколько я понял, дискретность где то в 1 секунду))(полной непрерывности логично достичь невозможно). но все равно всегда после обновления другого поля сторонняя прога перестает обновлять свои данные. возможно, просто она поддерживает соединение с базой, и каким то образом мой запрос разрывает это соединение(хотя это странно)
5.1K
18 августа 2010 года
Karrde
88 / / 15.10.2007
Сорри) база данных sql server
5.1K
18 августа 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток. возникла проблема: существует база данных, хранящая инфу о звуковых записях в отдельных файлах. при записи нового wav-файла в базе в одной и таблиц идет постоянное обновление длительности этого файла(до тех пор, пока, соответственно, этот файл не перестанет записываться). Но в моем приложении тоже в момент записи надо обратиться к этой таблице и обновить в другом поле инфу. Так вот, как только я обновляю это поле, сразу перестает обновляться поле длительности записи(похоже, что идут два одновременных запроса на изменение таблицы, и сторонняя прога этого не выдерживает). Можно ли это обойти?
5.1K
23 июня 2010 года
Karrde
88 / / 15.10.2007
мдя, в итоге подумал, что такую разнородную кучу структур переводить в управляемый код будет долго и муторно)) и решил, раз уж пишу на cli, то можно и эти неуправляемые структуры оставить. Спасибо, по крайней мере начал разбираться с PInvoke
5.1K
23 июня 2010 года
Karrde
88 / / 15.10.2007
Да, согласен)) Спасибо). нашел тут статью. Но дополнительный вопрос есть. Допустим, в native-структуре объявлен массив типа char Data[1500].
Т.е. его аналог в управляемой структуре:
static array<System::Byte>^ Data = gcnew array<System::Byte>(1500) ?
Ведь в cli нельзя объявлять что-то типа array<System::Byte> Data[1500], а для нестатического массива можно только объявить дескриптор array<System::Byte>^ Data, под который не будет выделено необходимые нам 1500 байт))
5.1K
23 июня 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток всем. Возникла интересная(по крайней мере для меня) проблема. Существует длл-ка, написанная на native c++, в функции которой в качестве параметров посылаются структуры, содержащие другие структуры и тд)) Я хочу все структуры перебить на управляемый код(в c++/cli) и уже их использовать в качестве параметров. Как это правильно реализовать? По идее, надо сделать так, чтобы итоговая последовательность байт управляемого класса полностью соответствовала последовательности байт изначальной структуры. Пытался вместо структур объявлять ref class, но функция выдала ошибку
5.1K
04 июня 2010 года
Karrde
88 / / 15.10.2007
Возникла проблема: есть файл, в который по ходу действия пишутся данные сторонней программой(то есть файл все время открыт для записи). Возможно ли считать в это же время данные из этого файла в своей программе?
5.1K
26 мая 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток. Допустим, у меня есть набор байт, считанных из wav-файла. Как можно, используя этот набор байт, воспроизвести файл. А то пока находил только инфу о том, как воспроизвести wav-ку по имени файла
5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Спасибо за подсказку)) вроде разобрался.. тема можно закрыть
5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Сорри, забыл сказать. Пишу на управляемом c++(в принципе, разницы не много). а вот насчет длл-выбора нет. надо именно ее присоединять.
с указанием соглашений вызова и точки вызова ничего не изменилось... все равно та же ошибка((
5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
[Свернуть исходник](#)
Код:
#ifndef _BUILD_SPEAKER_MODEL_H
#define _BUILD_SPEAKER_MODEL_H
#include "iddsp_struct.h"
#ifdef _WIN32
#include "license.h"
#endif/* _WIN32 */
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
#ifdef _WIN32
/////////////////////////////////////////////
// Get GritTec's product information
extern "C" __declspec(dllimport)
const TProductInfo SMODEL_Info;
///////////////////////////////////////////////////////////////////////////////
// Functions for Installation of a key of GritTec's Product (it's used for DLL library)
///////////////////////////////////////////////////////////////////////////////
#ifdef USE_GRITTEC_INSTALL_KEY
// Checked of license key
// Returns non-zero if the key is valid and installed
int SMODEL_CheckedKey(TChar100 *cName,//(o) get user Name
TChar100 *cKey //(o) get license Key
);
// Installation of a key of GritTec's Product (it's used for DLL library)
// Returns non-zero if the key is valid and installed
in
5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Логично))
Но просто и писать особо нечего. есть длл(чисто уже скомпиленная, без исходников). перенес в папку с прогой. присоединил к проект h-файл и lib, вызывающую функции длл-ки.
Потом объявил функцию:
[DllImport("bmodel.dll")]
static int SMODEL_CheckedQuantEnrollUsers();
И попытался в коде вызвать эту функцию. В ответ- вышеупомянутый эксепшн
5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Надо подключить длл, написанную на unmanaged c++ к проекту windows Forms(тоже c++). Причем уже есть консольный проект, на котором эта длл хорошо работает.. Подключаю, компилю. При выполнении программы на любой функции длл-ки выдает эксепшн
"Unable to load DLL 'bmodel.dll': Неверная попытка доступа к адресу памяти. (Exception from HRESULT: 0x800703E6)".
Длл-ка эта ни на какие другие несуществующие)) модули не ссылается(только kernel и ntdll). В чем может быть проблема? заранее благодарен за любые советы
5.1K
25 апреля 2010 года
Karrde
88 / / 15.10.2007
Проблему решил, просто затупил... Сорри за беспокойство)) Тему можно закрыть
5.1K
25 апреля 2010 года
Karrde
88 / / 15.10.2007
Есть обычный консольный проект c++(скомпиленный в 2008 вижле). В нем присутствует класс, который с этой консольной прогой нормально взаимодействует. Пытался создать проект windows forms(c++), и заинклудить туда этот класс. в итоге:
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"
Добавил stdafx, мне выдало LNK2001 unresolved external symbol...
Может, надо с ключами /clr что-то поменять?
как решить эту проблему?
5.1K
02 апреля 2010 года
Karrde
88 / / 15.10.2007
Хм. Проблема в том, что он тоже полностью эмулирует pdf-ридер(со всеми функциями, кнопками). Мне же нужно, чтобы не было(и вообще не было доступа) к, например, кнопке печати. чисто чтобы можно было просмотреть документ, пролистать..
5.1K
02 апреля 2010 года
Karrde
88 / / 15.10.2007
а есть какое-нибудь другое решение? или можно заблокировать часть кнопок webbrowser'а?
5.1K
02 апреля 2010 года
Karrde
88 / / 15.10.2007
Задача состоит в выводе содержимого pdf на форму. По идее, с этим должна справляться библиотека pdfsharp. Но как я ни бился, вывести на экран существующую pdf я не смог(( может кто имел с этим дело?
5.1K
28 марта 2010 года
Karrde
88 / / 15.10.2007
Я использую AddressList[0]. Но тогда не может подключаться клиент, находящийся на одном компе с серваком.
5.1K
28 марта 2010 года
Karrde
88 / / 15.10.2007
Выскочила интересная проблема. Создаю серверный сокет
Код:
IPHostEntry^ ipHostInfo = Dns::Resolve(server);
System::Net::IPAddress^ ipAddress = ipHostInfo->AddressList[0];//Узнаем IP-адрес
IPEndPoint^ endPoint = gcnew IPEndPoint(ipAddress, port);
_durakSocket = gcnew Socket(endPoint->AddressFamily, SocketType::Stream,ProtocolType::Tcp);//инициализируем сокет
В том случае, если создавать сокет первым IP-адресом из списка
System::Net::IPAddress^ ipAddress = ipHostInfo->AddressList[0];
то спокойно могут подключаться клиенты из локалки, но при попытке создать такой же клиент на том же компьютере, где находится сервак, клиент не видит созданного сервера.
Если инициализировать сокет IP-адресом 127.0.0.1
получается обратная ситуация-клиенты на том же компе видят сервер, клиенты с других компов-не видят.
Мне же желательно, чтобы могли подключаться отовсюду.
В чем загвоздка?
5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Спасибо за помощь. проблема решена)
5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Сорри, не совсем понял(и мозги уже плохо варят). То есть так объявить нельзя?
List<card^>^ pack;
так, чтобы было видно в других функциях:
pack = gcnew List<card^>;
Выскакивают ошибки, связанные с IServiceProvider
5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток. Вопрос такой: корректно ли использовать библиотеку STL под CLR? просто, например, хочу сделать глобальный управляемый вектор ref-структур(что-то типа такого):
#include <cliext/vector>
#include <cliext/algorithm>
cliext::vector<card^>^ pack;//Определяется в хедере класса
И потом хочу использовать его
using namespace cliext;
pack = gcnew vector<card^>;
pack->push_back(newCard);
В итоге выдает следующее:
error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (cliext.impl.vector_impl<card ^,0>): (0x020001ac).
Как правильно использовать вектора под clr?
5.1K
03 февраля 2010 года
Karrde
88 / / 15.10.2007
9.0K
03 февраля 2010 года
129 / / 30.11.2007
Спасибо. уже сделал с помощью функции select-просто жду от структуры сокетов приема любого сообщения. Вопрос теперь в другом. пробовал клиент-сервер запускать на одном компьютере(ip 127.0.0.1)-все работает, все запускается. а вот уже по сети-клиент и сервер друг друга не видят. Клиент походу в любом случае при коннекте пишет, что подключился(даже если задать несуществующий ip). Но сервер не реагирует.
З.Ы. Для соединения ведь все равно, какой порт использовать(пробовал и 80, и любые другие)?
5.1K
09 февраля 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток. Хочу сделать список(с помощью vector) из объектов структуры. Данная структура также состоит из стандартной структуры fd_set(которая тоже является списком))). Допустим, я создал первый элемент fd_set, и потом создал первый элемент своей внешней структуры, записав в нее fd_set. можно ли по ходу добавлять во вложенную fd_set дополнительные элементы
Попытался сделать так:
Код:
struct game
{
fd_set gameClients;
char name[30];
};
....
SOCKET s;
vector<game> arrayOfGames = new vector<game>;
FD_SET(s ,arrayOfGames.gameClients);
но в итоге выдает
'gameClients' : is not a member of 'std::vector<_Ty>'
5.1K
03 февраля 2010 года
Karrde
88 / / 15.10.2007
9.0K
03 февраля 2010 года
129 / / 30.11.2007
А listen и accept нужно использовать при этом? или просто пишем bind, и потом recv()-ждем любого сообщения?
З.Ы. А можно сообщением посылать не текст, а например, какой нить массив значений int?
5.1K
03 февраля 2010 года
Karrde
88 / / 15.10.2007
9.0K
03 февраля 2010 года
129 / / 30.11.2007
Доброго времени суток. Задача-сделать чат на несколько человек, работающий в фоновом режиме. Потоки делаю с помощью backgroundworker. Вопрос: то есть серверу нужно будет держать n-ое кол-во потоков(для обеспечения связи с n клиентов):каждый из потоков будет ждать приема сообщения от того сокета, с которым установил сообщение? или есть более простой выход?
И ещё: backgroundworker же обеспечивает синхронизацию потоков? То есть можно же в потоке будет использовать переменные этого класса, объявленные вне этого потока?
5.1K
15 декабря 2009 года
Karrde
88 / / 15.10.2007
Что-то ещё проблема появилась. и не могу понять: можно ли объявить вектор глобально вне функций и каким образом передать указатель вектора в другую функцию((
5.1K
16 декабря 2009 года
Karrde
88 / / 15.10.2007
Надо сделать таблицу, содержащую одну строку. Я считываю данные и заношу в эту таблицу, и в зависимости от количества элементов необходимо изменить количество ячеек. Подскажите, каким элементом лучше всего пользоваться. в DataGridView похоже, можно только по одному столбцу добавлять-удалять, да и у каждого столбца похоже, свое отдельное имя-неудобно обращаться(если правильно понял).
Помню, ещё в билдере был удобный компонент как раз для такого: StringGrid. Есть ли что нить похожее в CLR?
5.1K
15 декабря 2009 года
Karrde
88 / / 15.10.2007
Блин. я идиот. всего то надо было отсортировать их.
Спасибо большое)
5.1K
15 декабря 2009 года
Karrde
88 / / 15.10.2007
Не могу понять: работаю с библиотекой STL с векторами. Все основные функции проходят нормально, но функции пересечения, разности, объединения множеств выдают при выполнении следующее
set_intersection(myArray.begin(), myArray.end(), myArray2.begin(), myArray2.end(), myArray.begin());
Expression: sequence not order.
Смотрел при пошаговом выполнении: такое чувство, что функция end() дает адрес не последнего введенного элемента списка, а какого-то неинициализированного элемента.
Заранее спасибо за совет
5.1K
03 августа 2009 года
Karrde
88 / / 15.10.2007
Хмм. а если проверить, например, существование 1-го элемента массива. это будет корректно?
5.1K
03 августа 2009 года
Karrde
88 / / 15.10.2007
Не совсем могу понять. Допустим, у меня есть массив, который нужно удалить функцией delete[] massiv. Массив удаляется, но адрес указателя не обнуляется, а остается таким же. В итоге, когда мне в какой-то момент необходимо проверить на существование данный массив:
if(NULL != massiv) программа считает, что массив существует. Как это обойти?
5.1K
18 июля 2009 года
Karrde
88 / / 15.10.2007
пишу на microsoft visual studio 2005(под mfc). присоединил к проге свою dll-ку. В итоге на компах, где не установлен вижуал, при запуске релиза выдает "ошибка при инициализации приложения (0xc0150002)". Framework установлен, в настройках проекта стоит multithreaded debug dll
5.1K
27 июня 2009 года
Karrde
88 / / 15.10.2007
Простите. но я не совсем понял вопросы((
5.1K
27 июня 2009 года
Karrde
88 / / 15.10.2007
извините. пишу на visual c++.
Ну и просто в длл их объявляю и реализовываю.
Цитата:
TEMPO_API int TempoCreateModel(LPCSTR szFileNameWav, LPCSTR szFileNameModel);
Не совсем понял, что ещё нужно указать))
5.1K
27 июня 2009 года
Karrde
88 / / 15.10.2007
Цитата:
#include "Tempo.h"
#pragma comment(lib, "Tempo.lib")
и в папку с программой копирую соответствующие .lib, .dll и .h
5.1K
27 июня 2009 года
Karrde
88 / / 15.10.2007
можно ли в при работе с .Net Framework подключать длл-ки, созданный в mfc? а то при попытке вызова функций длл-ки выпадают такие ошибки:
Цитата:
testdll2.obj : error LNK2028: unresolved token (0A000015) "int __clrcall TempoSetModel(char const *)" (?TempoSetModel@@$$FYMHPBD@Z) referenced in function "private: void __clrcall testdll2::Form1::button4_Click(class System::Object ^,class System::EventArgs ^)" (?button4_Click@Form1@testdll2@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
Цитата:
testdll2.obj : error LNK2019: unresolved external symbol "int __clrcall TempoSetModel(char const *)" (?TempoSetModel@@$$FYMHPBD@Z) referenced in function "private: void __clrcall testdll2::Form1::button4_Click(class System::Object ^,class System::EventArgs ^)" (?button4_Click@Form1@testdll2@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
5.1K
17 мая 2009 года
Karrde
88 / / 15.10.2007
Чего то не понимаю. Есть рисунок, отрисованный на битмапе и переданный pictureBox. Мне нужно масштабировать рисунок и сдвигать по оси x. Это какими функциями можно сделать? используя PictureBox, битмап или класс Graphics?
5.1K
14 мая 2009 года
Karrde
88 / / 15.10.2007
мдя. глюки.
вызываю в этом таймере класс. пока в нем начинает обсчитываться, действия в таймере идут дальше. и к тому времени, когда подходит к считыванию выходных данных из класса, там ещё ничего не просчитано. То есть по идее, надо останавливать поток таймера до тех пор, пока в классе все не просчитается. ?
5.1K
14 мая 2009 года
Karrde
88 / / 15.10.2007
И опять вопрос по visual 2005. Ставлю компонент timer. Алгоритм проги такой: каждые 20 мс вызывается функция таймера, при вызове берется кусок данных и засылается в другой класс. как только в классе-получателе накапливается достаточно данных, он производит над ними действия.
Проблема в том, что, по идее, обработка должна производиться раз в 15 секунд(то есть после 750 проходов). И на моем компьютере так и происходит. а вот тестил на ещё 4-х компах(причем всех мощнее моего), там эти 750 проходов происходят ровно за 25 секунд, то есть идет большое отставание по времени.
В чем может быть дело? По идее, действия, выполняющиеся при каждом вызове таймера, просты, и не должны сильно задерживать выполнение
5.1K
05 мая 2009 года
Karrde
88 / / 15.10.2007
А что скажут старожилы? можно ли обойтись как нибудь без framework?
5.1K
05 мая 2009 года
Karrde
88 / / 15.10.2007
Походу без FrameWork ты никак не обойдешься(((
5.1K
05 мая 2009 года
Karrde
88 / / 15.10.2007
Туплю... скомпилил прогу на 2005 visual(Release). на моем компе пашет отлично. а вот на компе, где вижуала нет- при запуске выдает: ошибка при инициализации приложения
5.1K
04 мая 2009 года
Karrde
88 / / 15.10.2007