C++Builder
   Начало   Форум Помощь Войти Регистрация  
Страниц: [1] 2 3 4 5 6 ... 10
 1 
 : Вчера в 18:19:07 
Автор excellion44 - Последний ответ от excellion44
Скачал Embarcadero 10.3 C++ builder Установил на Win 10 pro x64
на MacMini macOS Mojave установил PAserver 20.0 - запустил
в Embarcedero настроил подключение к PAserver (см. скрин) https://yadi.sk/i/rb-BS7Xvm2SoTQ (подключение прошло успешно)
Начинаю компилировать совершенно пустой проект под osX и - https://yadi.sk/i/yDB8sEowlHfnfA 51 ошибка - https://yadi.sk/i/2nC-tynyIyqLDQ
если компилировать по IOS то вылетает одна ошибка - https://yadi.sk/i/BvmBi0yq_NKzqg
Напомню что проект совершенно пустой, т.е. запустил Embarcadero (от имени администратора запускал, тоже самое) нажал file - new - Multi device application....
 Xcode на маке установлен (стоят все самые последние обновления)
помогите плиз. Заранее всем спасибо.

 2 
 : 07 Май 2019, 11:46:57 
Автор SilverFish - Последний ответ от SilverFish
Ошибка пропала после странного изминения:
Код
    TMMint Sort;
   for(int i=1;i<StringGrid2->RowCount;i++)
{
 int value = StrToInt(StringGrid2->Cells[3][i]);  // <---
 Sort.insert(TMMint::value_type(value, StringGrid2->Cells[1][i]));// Ok
}

 3 
 : 06 Май 2019, 10:26:32 
Автор SilverFish - Последний ответ от SilverFish
Здравствуйте.
Попросили проект созданный в BCB6 перенести в BCB2007.
Подскажите, пожалуйста, как исправить для BCB2007 ошибку:
Код
TMMint Sort;
   for(int i=1;i<StringGrid2->RowCount;i++)
   {
       Sort.insert(TMMint::value_type(StrToInt(StringGrid2->Cells[3][i]),StringGrid2->Cells[1][i]));//ошибка
   }
//Ошибка:
//Could not find a match for 'pair<const int,AnsiString>::pair(AnsiString,AnsiString)'
В h файле объявление:
Код
typedef multimap<int, AnsiString> TMMint; 

В 2009-ом Билдере код нормально компилируется.

 4 
 : 06 Май 2019, 03:33:46 
Автор Sergey1985 - Последний ответ от S0mbre
Привет.
1) Если в клиенте требуется только чтение из отображения, лучше открывать с флагом FILE_MAP_READ, то же самое для серверной стороны - если только записать, флаг FILE_MAP_WRITE
2) Почему в серверном приложении задается размер буфера 4001 байт?
3) UnmapViewOfFile() надо вызывать только с одной стороны - где создано отображение

Для избежания ошибок "утечки" памяти лучше применять события для синхронизации, как показано например здесь. Или же читать из отображения при помощи данных в структуре FileMapping, как описано здесь.

 5 
 : 04 Апрель 2019, 20:33:29 
Автор Sergey1985 - Последний ответ от Sergey1985
Доброго времени суток
Есть две программы. Одна создает и передает файл отображения в память другая считывает. Проблема в том что чтение происходит через раз. То есть данные то нет. Помогите плиз очень надо.
Код
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE hFile;
HANDLE hFileMap = NULL;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int error;
hFile= CreateFile(L"Text.txt",
  GENERIC_READ | GENERIC_WRITE,
  FILE_SHARE_WRITE,
  NULL,
  CREATE_ALWAYS,
  FILE_ATTRIBUTE_TEMPORARY,
  0);
 
AnsiString myString;
unsigned long dwBytesWritten;
 
for (int i = 0; i < Memo1->Lines->Count; i++)
{
 myString = Memo1->Lines->Strings[i];
 myString = myString+"\r\n";
 WriteFile(hFile, myString.c_str(), myString.Length(), &dwBytesWritten, NULL);
}
 
 
 
  bool bResult;
  PCHAR lpBuffer = NULL;
 
  // STEP-1 CreateFileMapping
  if(hFileMap!=NULL)
  CloseHandle(hFileMap);
 
  hFileMap = CreateFileMapping(
 hFile,                // дескриптор файла
 NULL,                 // защита
 PAGE_READWRITE,       // атрибуты защиты
 0,                    // старшее слово размера
 4001,                  // младшее слово размера
 L"Local\\MyFileMap"); // имя объекта
  if (hFileMap == NULL)
  {
error = GetLastError();
Memo1->Lines->Add("CreateFileMapping Failed & Error No - "+IntToStr(error));
  }
 
  // STEP - 2 MapViewOfFile
  lpBuffer = (PCHAR)MapViewOfFile(
hFileMap,            // дескр. объекта проецируемый файл
FILE_MAP_ALL_ACCESS, // режим доступа
0,                   // старшее DWORD смещения
0,                   // младшее DWORD смещения
0);                  // число отображаемых байтов
  if (lpBuffer == NULL)
{
 error = GetLastError();
 Memo1->Lines->Add("MapViewOfFile Failed & Error No - "+IntToStr(error));
}
 
// STEP - 3 UnmapViewOfFile
bResult = UnmapViewOfFile(lpBuffer);
   if (bResult == FALSE)
{
  error = GetLastError();
  Memo1->Lines->Add("UnmapViewOfFile Failed & Error No - "+IntToStr(error));
}
 
 
CloseHandle(hFile);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
CloseHandle(hFileMap);
hFileMap = NULL;
}
//---------------------------------------------------------------------------
 



2 прога

Код
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Clear();
  HANDLE hFileMap;
  bool bResult;
  PCHAR lpBuffer;
 
  // STEP - 1 OpenFileMapping
  hFileMap = OpenFileMapping(
               FILE_MAP_ALL_ACCESS,
               false,
               "Local\\MyFileMap");
  if (hFileMap == NULL)
  {
   Memo1->Lines->Add("OpenFileMapping failed"+IntToStr(GetLastError()));
  }
  // STEP - 2 MapViewOfFile
 
  lpBuffer = (PCHAR)MapViewOfFile(
                    hFileMap,
                    FILE_MAP_ALL_ACCESS,
                    0,
                    0,
                    0);
  if (lpBuffer == NULL)
  {
   Memo1->Lines->Add("MapViewOfFile failed"+IntToStr(GetLastError()));
  }
  else
   Memo1->Lines->Add("MapViewOfFile success");
 
  // STEP - 3 Reading the Data from File-Map Object
   Memo1->Lines->Add(AnsiString(lpBuffer));
 
  // STEP - 4 UnmapViewOfFile
  bResult = UnmapViewOfFile(lpBuffer);
  if (bResult == NULL)
  {
   Memo1->Lines->Add("Unmapping failed"+IntToStr(GetLastError()));
  }
  else
   Memo1->Lines->Add("Unmapping success");
   // STEP - 5 CloseHandle
   CloseHandle(hFileMap);
 
 
}
//---------------------------------------------------------------------------
 

 6 
 : 04 Апрель 2019, 20:27:16 
Автор Sergey1985 - Последний ответ от Sergey1985
Ну не знаю... Так великий volvo посоветовал сделать. Думаю его все знают.

 7 
 : 25 Февраль 2019, 21:16:44 
Автор Ravil - Последний ответ от Ravil
Тема закрыта. Решил вопрос более простым способом, отключением данной звуковой дорожки в Windows.

 8 
 : 22 Февраль 2019, 02:47:10 
Автор Ravil - Последний ответ от Ravil
Всем доброго дня. Ребят может кто знает как отключить звуковое сопровождение при выполнении данного кода? Ну очень сильно напрягает. 
Код:
void __fastcall TForm5::Edit2KeyPress(TObject *Sender, System::WideChar &Key)
{
if(Key == VK_RETURN)
   {
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
   }
}
                                                                                                                     ЗА ранее всем спасибки.

 9 
 : 17 Февраль 2019, 13:31:42 
Автор direk - Последний ответ от direk
Поспешил задавать вопрос. Нашел решение:

Код
TMemoryStream *ms = new TMemoryStream;
   TStringList *lst = new TStringList;
   IPersistStreamInit *strm;
 
   lst->Text = HTMLText;
   lst->SaveToStream(ms);
 
   ms->Position = 0;
   _di_IStream adapter(*(new TStreamAdapter(ms, soReference)));
   if (SUCCEEDED(cppWB->Document->QueryInterface(IID_IPersistStreamInit, (void **)&strm)))
       strm->Load(adapter);
 
   delete ms, strm, lst;

Так все работает. Тему можна закрыть.

 10 
 : 17 Февраль 2019, 12:44:13 
Автор direk - Последний ответ от direk
Такая ситуация - програма создает данимические HTML странички.
Если это простой HTML - CppWebBrowser1 отображает их без проблем.
Но для красоты интерфейса я использую в том числе и jQuery-скрипты.

Код
 
TStringStream *str2 = new TStringStream();
str2->LoadFromFile(L"c:\\test.html");
Variant v;
IHTMLDocument2 *HTMLDoc = NULL;
 
CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&HTMLDoc);
v = VarArrayCreate( OPENARRAY( int, ( 0, 0 ) ), varVariant );
v.PutElement(str2->DataString, 0);
HTMLDoc->write(PSafeArray(TVarData(v).VArray));
 
HTMLDoc->close();
delete  str2;
 

Проблема возникает вот здесь : $(document).ready(function()

Код
<script type='text/javascript'>
        $(document).ready(function(){
$('.fancybox').fancybox();
});
</script>

Ругается на: $ не определено.

При том,  если из StringStream HTML-страницу выгрузить в файл
и загрузить его потом в WebBrowser1 через Navigate, то ошибок не выдает и
скрипты выполняються.
 
Код
ppWebBrowser1->Navigate(L"c:\\test.html");

Теперь вопрос - почему, если из файла, скрипты выполняются, а
если тот же файл загрузить в поток и потом в  WebBrowser , то ругается?
И как обойти эту ошибку, если возможно?

Страниц: [1] 2 3 4 5 6 ... 10



....

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines
Страница сгенерирована за 0.137 секунд. Запросов: 20.