В Роботе пытаюсь вызвать диалог, с использованием dll, написанной на MV C++.
Диалог вызывается, даже возвращает результат, а вот когда я пытаюсь передать строку как параметр — ничего у меня не выходит.
Вопрос в следующем: Как вернуть строковую переменную?
Моя функция в dll:
int Test( char* f) \\ вызывает окно диалога выбора каталога.
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HINSTANCE prev_hinst = AfxGetResourceHandle();
HMODULE hRes = GetModuleHandle("fl.dll");
if(hRes) AfxSetResourceHandle(hRes);
FileLang d; \\ диалог
d.DoModal();
strcpy(f,"d.m_Str"); \\ переменная, которая возвращает выбранный каталог
AfxSetResourceHandle(prev_hinst);
return 1;
}
Robot:
Declare Function Test Lib "FL.dll"(byref c as String) as Integer
...
Dim filename as String
dim c as integer
c = Test(filename)
Здравствуйте, maslenisa, Вы писали:
M>Robot:
M>Declare Function Test Lib "FL.dll"(byref c as String) as Integer
M>...
M>Dim filename as String
M>dim c as integer
M>c = Test(filename)
Надо так
Dim filename as String * 256
Dim c As Integer
c = Test(filename)
Здравствуйте, LIS, Вы писали:
LIS>Здравствуйте, maslenisa, Вы писали:
LIS>LIS>Dim filename as String * 256
LIS>Dim c As Integer
LIS>c = Test(filename)
LIS>
Сделала так, Robot упал. Может в dll должно быть не char*? Но что тогда?
Здравствуйте, maslenisa, Вы писали:
M>Здравствуйте, LIS, Вы писали:
LIS>>Здравствуйте, maslenisa, Вы писали:
LIS>>LIS>>Dim filename as String * 256
LIS>>Dim c As Integer
LIS>>c = Test(filename)
LIS>>
M>Сделала так, Robot упал. Может в dll должно быть не char*? Но что тогда?
Забыл
Robot:
Declare Function Test Lib "FL.dll"(
ByVal c as String) as Integer